簡體   English   中英

django.db.utils.OperationalError:my_table 沒有列 ID 錯誤?

[英]django.db.utils.OperationalError: my_table has no column id error?

我正在我的 Python 解釋器中測試我的 Django 應用程序的 models.py 文件:“myapp”,但一直遇到這個錯誤:

django.db.utils.OperationalError: table myapp_table1 has no column named attribute1_id

我的models.py、table1和table 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 (或python manage.py migrate如果您使用south - 您應該這樣做)以便將更改應用於數據庫。

首先刪除pycache,和所有0001_initial.py,然后python manage.py flush ,然后

python manage.py makemigrations

然后

python manage.py migrate

然后

python manage.py createsuperuser

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM