簡體   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