我正在测试我的Django应用程序的models.py文件:我的
Python interepreter中的“myapp”,但是仍然遇到这个错误:
django.db.utils.OperationalError: table myapp_table1 has no column named attribute1_id
我的models.py,table1和表2中有2个表.
class table1 (models.Model): name = models.CharField(max_length=25) def __str__(self): return self.name class table2 (models.Model): name = models.CharField(max_length =25) attribute1= models.ForeignKey(Type,related_name = "att1_set+",default=None) attribute2= models.ManyToManyField(Type,related_name = "att2_set+",default=None) def __str__(self): return self.metric_name
在我的python解释器中:
>>> from my_app.models import table1,table2 >>> t1 = table1 (name = "ty1",id = 0) >>> t1.save() >>> t2 = table1 (name = "ty2",id = 1) >>> e1 = table2 (name = "as",attribute1 = t1) >>> e1.save() >>> error aforementioned after .save
但是,当我执行:“manage.py sql myapp”时,我看到我的table2:
CREATE TABLE "my_app_table2" ( "id" integer NOT NULL PRIMARY KEY AUTOINCREMENT,"name" varchar(25) NOT NULL,"attribute1_id" integer NOT NULL REFERENCES "myapp_table1" ("id") )
解决方法
您必须运行python manage.py syncdb(如果您使用south,则运行python manage.py migrate – 您应该这样做),以便将更改应用于数据库.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。