python - Django,ManyToManyField - ProgrammingError : relation foo_bar does not exist. 在迁移中被识别,但从未创建关系

标签 python sql django postgresql django-models

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

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

管理.py外壳

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...

相关文件和回溯如下:

链接.模型.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_* 表(应用名为“links”)
  2. 通过执行以下操作删除“链接”应用的所有迁移:

    from django.db.migrations.recorder import MigrationRecorder
    MigrationRecorder.Migration.objects.filter(app='links').delete()
    
  3. 使用 manage.py migrate

    向前迁移

关于python - Django,ManyToManyField - ProgrammingError : relation foo_bar does not exist. 在迁移中被识别,但从未创建关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27792465/

相关文章:

python - 在 AWS Lambda 中使用 numpy

sql - 显示Presto中所有模式的表格

python - Django Rest Framework ViewSet 的其他 View

c# - TryParseExact 方法如何在多格式数组中工作

mysql - 将 sql 转换为 Django ORM

python - 将 django 变量添加到 <select> 标签

python - 统计当月星期日的个数

python - 使用虚拟 ListCtrl 在 wxpython 中复制并粘贴行

Python CGI 脚本在 uWSGI 试图读取 sys.stdin 时挂起

SQL 服务器 : How to get hold of XML attributes in a query?