Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 没有这样的列错误消息_Python_Django_Django Models_Django Forms_Django Admin - Fatal编程技术网

Python 没有这样的列错误消息

Python 没有这样的列错误消息,python,django,django-models,django-forms,django-admin,Python,Django,Django Models,Django Forms,Django Admin,我在django网站上读了教程,现在我遇到了麻烦。这看起来很简单,但它给了我一个问题。每次运行populate_rango.py脚本时,都会出现一个错误 我已经根据Tango with Django站点的示例修改了我的脚本和models.py文件,但仍然没有创建一个专栏 错误: Starting Rango population script... Traceback (most recent call last): File "populate_rango.py", line 67

我在django网站上读了教程,现在我遇到了麻烦。这看起来很简单,但它给了我一个问题。每次运行populate_rango.py脚本时,都会出现一个错误

我已经根据Tango with Django站点的示例修改了我的脚本和models.py文件,但仍然没有创建一个专栏

错误:

    Starting Rango population script...
Traceback (most recent call last):
  File "populate_rango.py", line 67, in <module>
    populate()
  File "populate_rango.py", line 8, in populate
    url="http://www.google.com")
  File "populate_rango.py", line 55, in add_page
    p = Page.objects.get_or_create(category=cat, title=title, url=url, likes=likes, views=views)[0]
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-    packages/django/db/models/manager.py", line 154, in get_or_create
    return self.get_queryset().get_or_create(**kwargs)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/models/query.py", line 376, in get_or_create
    return self.get(**lookup), False
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/models/query.py", line 304, in get
    num = len(clone)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/models/query.py", line 77, in __len__
    self._fetch_all()
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/models/query.py", line 857, in _fetch_all
   self._result_cache = list(self.iterator())
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/models/query.py", line 220, in iterator
    for row in compiler.results_iter():
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 713, in results_iter
    for rows in self.execute_sql(MULTI):
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 786, in execute_sql
    cursor.execute(sql, params)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site- packages/django/db/backends/util.py", line 69, in execute
    return super(CursorDebugWrapper, self).execute(sql, params)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/backends/util.py", line 53, in execute
    return self.cursor.execute(sql, params)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/utils.py", line 99, in __exit__
   six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-         packages/django/db/backends/util.py", line 53, in execute
    return self.cursor.execute(sql, params)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-    packages/django/db/backends/sqlite3/base.py", line 451, in execute
    return Database.Cursor.execute(self, query, params)
django.db.utils.OperationalError: no such column: rango_page.likes
modes.py:

from django.db import models

class Category(models.Model):
    name = models.CharField(max_length=128, unique=True)

    def __unicode__(self):
        return self.name

class Page(models.Model):
    category = models.ForeignKey(Category)
    title = models.CharField(max_length=128)
    url = models.URLField()
    likes = models.IntegerField(default=0)    
    views = models.IntegerField(default=0)

    def __unicode__(self):
        return self.title
运行以下命令:

python manage.py sqlall <your_app>
您可以使用以下代码添加它:

ALTER TABLE "Page" ADD COLUMN "likes" IntegerField(0)
但请注意,创建表后,sync db不会进行集成架构更改。您必须手动删除数据库,然后再次执行syncdb。
有关更多信息,请阅读django站点中的
syncdb
配方

扩展模型后是否运行了
python manage.py syncdb
?@TimZimmermann是的。我生成了sql表,它显示了当我运行python manage.py sql rango时的情况,但是当脚本运行时,我得到了错误。您是否检查了数据库中是否存在该列?我如何做到这一点。我跑“python manage.py sql rango,它显示在那里。是否有另一种方法来检查
python manage.py sql
只生成sql语句,它不会执行这些语句,因此不会更改数据库模式。如何检查列是否存在取决于您使用的数据库。谢谢您的回复。我检查了一下,喜欢列表,但是我的脚本看不到它。所以我建议如果可能的话,删除你的数据库,重新打包和同步。
python manage.py dbshell
ALTER TABLE "Page" ADD COLUMN "likes" IntegerField(0)