Python django评级错误:未知列';资源(resources),评级(投票)x27 ;;在';字段列表';
在安装和同步db后,我将以下内容添加到我的模型中:Python django评级错误:未知列';资源(resources),评级(投票)x27 ;;在';字段列表';,python,mysql,django,django-1.6,django-ratings,Python,Mysql,Django,Django 1.6,Django Ratings,在安装和同步db后,我将以下内容添加到我的模型中: rating = RatingField(range=5) 并得到了错误信息: Unknown column 'resources_resources.rating_votes' in 'field list' Docs说:“django评级的构建方式要求您在模型上附加一个评级字段。该字段将创建两列,一个投票列和一个分数列。它们都将以您的字段名作为前缀” 我检查了DB,创建了ratings_score和ratings_vote表,但没有向我
rating = RatingField(range=5)
并得到了错误信息:
Unknown column 'resources_resources.rating_votes' in 'field list'
Docs说:“django评级的构建方式要求您在模型上附加一个评级字段。该字段将创建两列,一个投票列和一个分数列。它们都将以您的字段名作为前缀”
我检查了DB,创建了ratings_score和ratings_vote表,但没有向我添加RatingField的模型添加任何列(不确定是否应该向模型的DB添加列)
我错过了什么?我相信我正确地遵循了教程。我在Django 1.6上。如果有任何手动解决方案可以实现这一点,它也会有所帮助。Django迁移只在Django 1.7中添加,您正在运行1.6 如果使用
RatingField
创建新模型,则Django可能会在运行syncdb
时创建数据库列。但是,将这些列添加到现有模型中并不是一种简单的方法
请注意,报告称不再维持Django评级。上一次提交是几年前。我使用的python manage.py syncdb与文档中所说的一模一样。我知道Django 1.6中没有migrate。如果手动在模型的表上创建列可以解决问题,我会这样做。只是需要关于这些列的更多信息。我的观点是,syncb只会在表还不存在时创建表,它不会向现有模型添加列。您可能会发现
python manage.py sqlall
在解决如何手动添加列时很有用。我检查了sqlall并得到了以下结果:这4个表也被创建了,但我没有看到任何关于模型列如何的提示。看起来您运行了评级应用程序的sqlall
,而不是添加了评级字段的应用程序(resources
?)哦,我明白了……sqlall显示了评级列:ratings\u vots
integer UNSIGNED NOT NULL和ratings\u score
integer NOT NULL在我的模型表中。sqlall报告中似乎没有任何外键,所以这意味着我只需要创建这两个整数列?