当前位置: 首页 > 面试题库 >

Django,ManyToManyField-ProgrammingError:关系foo_bar不存在。尽管从未建立关系,但已在迁移中得到认可

吕琪
2023-03-14
问题内容

在这种情况下,“ foo_bar”实际上是“ links_userprofile_favorite_feeds”。

问题是,当我进入manage.py shell时:

from django.contrib.auth.models import User
from feeds.models import feed
p = User.objects.get(username='myuser')
p.save()
q = Feed.objects.get(title="myfeed")
q.save()
p.userprofile.favorite_feed.add(q)

我懂了

错误:

ProgrammingError: relation "links_userprofile_favorite_feeds" does not exist
LINE 1: ..."links_userprofile_favorite_feeds"."feed_id" FROM "links_use...

以下是相关文件和回溯:

links.models.py

class UserProfile(models.Model):
    user = models.OneToOneField(User,unique=True)
    bio = models.TextField(null=True)
    thumbnail = models.ImageField(upload_to="uploaded_files/")  
    favorite_feeds = models.ManyToManyField(Feed)

feeds.models.py

class Feed(models.Model):
    title = models.CharField(max_length=25)
    slug = models.SlugField(max_length=25)

    def save(self, *args, **kwargs):
        if not self.slug:
            #Newly created object, so set slug
            self.slug = slugify(self.title)

        super(Feed,self).save(*args,**kwargs)

    def __unicode__(self):
        return self.title

    class Meta:
        ordering = ('title',)

迁移中似乎存在该关系,但是manage.py syncdb, manage.py makemigrations, manage.py migrate,所有关系都不起作用(没有要应用的迁移)。

有人可以帮忙吗?我想建立关系"links_userprofile_favorite_feeds."


问题答案:

固定。

对于将来遇到此问题的人:

  1. 从数据库中删除所有links_ *表(应用程序称为“链接”)
  2. 通过执行以下操作,删除“链接”应用程序的所有迁移:

    from django.db.migrations.recorder import MigrationRecorder
    

    MigrationRecorder.Migration.objects.filter(app=’links’).delete()

  3. 向前迁移 manage.py migrate



 类似资料:
  • 问题内容: 作为tut的一部分,我试图连接到postgres服务器,其结构如屏幕截图所示。我添加了一个db“烧瓶”,您可以看到。 基于该tut,我的主文件(’routes.py’)中包含以下代码: models.py: 运行时,调试器给出: 我究竟做错了什么? 问题答案: 从本质上讲,您将需要将其拆分为几个文件,以防止导入问题并使事情更加整洁。我已经完成了以下工作。注意,我已经使用了SQLite,

  • 好了,这里是第一次用到NutDao的关联关系了, 打开User类,加入2行 @One(target=UserProfile.class, field="id", key="userId") protected UserProfile profile; 自然的,为其添加Getter/Setter

  • “tasks:TOP=>db:migrate(请参阅使用--trace运行任务的完全跟踪) 我不理解这是怎么可能的,因为在方案文件中我没有post表。

  • 嗨,我正在和Docker一起运行Flyway,并通过CodeBuild呼叫。但我一次又一次地犯了错误,即使是在丢掉桌子之后。 创建公共表。flyway_schema_history(已安装_rank integer NOT NULL,版本字符变化(50),描述字符变化(200)NOT NULL,类型字符变化(20)NOT NULL,脚本字符变化(1000)NOT NULL,校验和整数,已安装_by

  • 本文向大家介绍django ManyToManyField多对多关系的实例详解,包括了django ManyToManyField多对多关系的实例详解的使用技巧和注意事项,需要的朋友参考一下 Django 的 ORM 有多种关系:一对一,多对一,多对多 各自定义的方式为 : 一对一: OneToOneField 多对一: ForeignKey 多对多: ManyToManyField 上边的描述太