Tango与Django教程:“表rango_category没有列名为views”

时间:2015-01-19 08:02:25

标签: python django sqlite

我已经坚持了一段时间并且已经完成了已经在这里发布的所有建议,但它仍然无法识别该列。

所以我得到了这个:

DatabaseError at /admin/rango/category/add/
table rango_category has no column named views
Request Method: POST
Request URL:    http://127.0.0.1:8000/admin/rango/category/add/
Django Version: 1.5.4
Exception Type: DatabaseError
Exception Value:    
table rango_category has no column named views

这是rango的models.py

from django.db import models

class Category(models.Model):
    name = models.CharField(max_length=128, unique=True)
    views = models.IntegerField(default=0)
    likes = models.IntegerField(default=0)

    class Meta:
        verbose_name_plural = "Categories"  # otherwise writes "Categorys"

    def __unicode__(self):
        return self.name

class Page(models.Model):
    category = models.ForeignKey(Category)
    title = models.CharField(max_length=128)
    url = models.URLField()  # can include max_length if desired
    views = models.IntegerField(default=0)

    def __unicode__(self):
        return self.title

我已经尝试使用python manage.py flush删除数据库然后执行python manage.py syncdb并且它会给出相同的错误。当我python manage.py sql rango时,我得到:

BEGIN;
CREATE TABLE "rango_category" (
    "id" integer NOT NULL PRIMARY KEY,
    "name" varchar(128) NOT NULL UNIQUE,
    "views" integer NOT NULL,
    "likes" integer NOT NULL
)
;
CREATE TABLE "rango_page" (
    "id" integer NOT NULL PRIMARY KEY,
    "category_id" integer NOT NULL REFERENCES "rango_category" ("id"),
    "title" varchar(128) NOT NULL,
    "url" varchar(200) NOT NULL,
    "views" integer NOT NULL
)
;

...所以我很确定名为“views”的专栏就在那里。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

您使用的是SQLite吗?请查看教程本节中的警告: http://www.tangowithdjango.com/book/chapters/models.html#creating-and-synchronising-the-database

  

每当您添加到现有数据库模型时,您都必须删除数据库文件,然后再次运行python manage.py syncb重新同步数据库。这是Django 1.5.4的一个缺点,可能非常令人沮丧。但是,如果添加新模型,则可以syncdb数据库,而无需删除并重新创建它。因此,在调整数据库时必须牢记这一点:新模型将与syncdb同步 - 但不会对现有模型进行更改。

因此,我删除了sqlite文件,然后再次运行manage.py syncdb

注意:Django 1.7好多了,网上有beta tutorial