繁体   English   中英

django.db.utils.ProgrammingError:关系“-”不存在

[英]django.db.utils.ProgrammingError: relation “ - ” does not exist

(Django新手) - 我正在寻找使用外键创建两个 model 。 第一个 model 称为Portfolio ,每个 Portfolio 通过第二个 model Portfoliomember有多个成员。 它目前看起来像这样:

class Portfolio(models.Model):
    portfolio_name = models.CharField(max_length=30, blank=True, null=True)

    def __str__(self):
        return self.portfolio_name

    class Meta:
        db_table = "portfolio"

class PortfolioMember(models.Model):
    portfolio = models.ForeignKey(Portfolio, related_name = "portfoliomember", on_delete=models.CASCADE)
    quality =  models.FloatField(blank=True, null=True)
    def __str__(self):
        return self.portfolio


    class Meta:
        db_table = "portfoliomember"

后来我的目标是在表单中使用表单集。 但是现在,当我尝试创建迁移时,我得到以下信息:

Running migrations:
  Applying app.0019_auto_20210318_1544...Traceback (most recent call last):
  File "C:\Users\FrankyDoul\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\backends\utils.py", line 85, in _execute
    return self.cursor.execute(sql, params)
psycopg2.errors.UndefinedTable: relation "portfoliomember" does not exist

django.db.utils.ProgrammingError: relation "portfoliomember" does not exist

有一个明显的原因为什么这不起作用?

为什么要在 Meta class db_table 中定义? 我不知道您的应用名称是什么,但通常您不需要这样做,除非有特定原因。 See this ( https://docs.djangoproject.com/en/3.1/ref/models/options/ ) " Django automatically derives the name of the database table from the name of your model class and the app that contains it".

因此,当您定义 db_table = 'another_name' 时,您会覆盖数据库表名。 我建议删除这一行,即 db_table = "portfoliomember" 并查看错误是否仍然存在。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM