Django:处理ManyToMany数据库时的ProgrammingError

0 投票
2 回答
520 浏览
提问于 2025-04-18 11:14

我开始在我的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

你需要同步数据库,这样才能让你在上次同步后对模型所做的任何更改生效。

只需要运行下面的命令:

python manage.py syncdb

manage.py 是你的项目文件夹。

0

这里你需要使用迁移功能。你可以使用 south(适用于django版本1.6及以下)。顺便提一下,来自官方文档的内容:

迁移是Django用来把你对模型所做的更改(比如添加字段、删除模型等)应用到数据库结构中的一种方式。它们的设计主要是自动化的,但你需要知道什么时候需要创建迁移,什么时候需要运行迁移,以及可能会遇到的一些常见问题。

撰写回答