我已经坚持了一段时间并且已经完成了已经在这里发布的所有建议,但它仍然无法识别该列。
所以我得到了这个:
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”的专栏就在那里。任何帮助将不胜感激!
答案 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。