Django:处理ManyToMany数据库时的ProgrammingError

时间:2014-06-26 18:11:25

标签: python database django postgresql many-to-many

在我的postgresql数据库中开始使用ManyToMany关系,但我最终得到了

  

“编程错误:关系”sequences_sequence_access“不存在”

有人可以向我解释我的错吗?

模型

from django.db import models
from django.contrib.auth.models import User

class Sequence(models.Model):
    name = models.CharField(max_length=200)
    seq = models.TextField()
    access = models.ManyToManyField(User)

    def __unicode__(self):
        return self.name

视图

x = Sequence(name=mInput[0:mIndex])
x.seq = alnContent
x.save()
x.access.add(User.objects.get(username=mUsername)) #Problems start here
x.save()

注意:我执行了syncdb(但是在错误地执行了一次之后,该字段仍然存在并且无法将其删除)

2 个答案:

答案 0 :(得分:0)

您必须同步数据库才能反映您在上次同步后对模型所做的任何更改。

跑步

python manage.py syncdb

manage.py是您的项目目录。

答案 1 :(得分:0)

您必须在此处使用迁移。您可以使用south(对于django< = 1.6)。来自documentation的BTW:

  

迁移是Django传播您所做的更改的方式   模型(添加字段,删除模型等)到您的数据库中   架构。它们的设计大多是自动的,但你需要   知道何时进行迁移,何时进行迁移以及常见的迁移   你可能遇到的问题。