我有一个follwing两个表:如何在现有的django模型中添加ManyToManyField?
class Visit(models.Models):
date_created = models.DateTimeField(auto_now_add=True)
date_modified = models.DateTimeField(auto_now=True)
date_started = models.DateTimeField(null=True, blank=True)
date_completed = models.DateTimeField(null=True, blank=True)
# Here i want to add ManyToManyField
research = ManyToManyField(ResearchProtocol) #Here i will write for adding the field
class ResearchProtocol(models.Model):
title = models.CharField(max_length=30)
description = models.TextField()
start_date = models.DateField()
end_date = models.DateField()
def __unicode__(self):
return '%s' % self.title
对于我写的SQL查询:
CREATE TABLE "visit_visit_research" (
"id" serial NOT NULL PRIMARY KEY,
"visit_id" integer NOT NULL REFERENCES "visit_visit" ("id") DEFERRABLE INITIALLY DEFERRED,
"research_id" integer NOT NULL REFERENCES "www_researchprotocol" ("id") DEFERRABLE INITIALLY DEFERRED,
UNIQUE ("visit_id", "research_id")
)
;
当我执行该文件以某种方式产生的场,但是当我打开VIST管理 并点击到一个特定的ID,导致改变形式它给我以下错误:
http://localhost:8000/admin/visit/visit/20/
Exception Type: DatabaseError at /admin/visit/visit/20/
Exception Value: column visit_visit_research.researchprotocol_id does not exist
LINE 1: ...visit_research" ON ("www_researchprotocol"."id" = "visit_vis...
^
有人说,你需要南一个如果没有南方,就不可能完成。这是唯一的解决方案吗?我正在使用Django 1.3.1,Python 2.7.2。
有人可以指导我我在做什么错误? 任何帮助将不胜感激。
在此先感谢。
嗨,丹尼尔。你写我犯了一个愚蠢的错误在挫折。我也通过使用python manage.py SQL应用程序名来验证它。最后说得对。我想问一个问题,为什么在创建一个ManyToManyField sql查询之后,django创建了一个外键。所以最后我们不需要向南。我非常紧张,因为我已经将该字段添加到服务器中,并且我不想在那里出现任何问题。感谢丹尼尔 – 2012-03-28 06:34:16