I'm testing my models.py file of my Django app: "myapp" in my Python interepreter, but keep running into this error:
我正在测试我的Django应用程序的models.py文件:我的Python interepreter中的“myapp”,但是仍然遇到这个错误:
django.db.utils.OperationalError: table myapp_table1 has no column named attribute1_id
I have 2 tables in my models.py, table1 and table 2.
我的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
In my python interpreter:
在我的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
However when I exe: "manage.py sql myapp", I see for my table2:
但是,当我执行:“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")
)
1 个解决方案
#1
3
You have to run python manage.py syncdb
(or python manage.py migrate
if you use south
- which you should) in order for changes to be applied to the database.
您必须运行python manage.py syncdb(或者如果您使用south,则运行python manage.py migrate - 您应该这样做),以便将更改应用于数据库。
#1
3
You have to run python manage.py syncdb
(or python manage.py migrate
if you use south
- which you should) in order for changes to be applied to the database.
您必须运行python manage.py syncdb(或者如果您使用south,则运行python manage.py migrate - 您应该这样做),以便将更改应用于数据库。