(Django新手)-我希望使用外键创建两个模型。第一个模型称为Portfolio
,每个投资组合通过第二个模型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"
后来我的目标是在表单中使用formset。但现在,当我尝试创建迁移时,我得到了以下结果:
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
有没有一个明显的原因说明这不起作用
为什么要在元类db_表中定义?我不知道你的应用程序名是什么,但通常你不需要这样做,除非有特定的原因。请参见(https://docs.djangoproject.com/en/3.1/ref/models/options/)“Django自动从模型类和包含它的应用程序的名称中派生数据库表的名称”
因此,当您定义db_table='另一个_名称'时,您将覆盖数据库表名称。我建议删除这一行,即db_table=“portfoliomember”,并查看错误是否仍然存在
相关问题 更多 >
编程相关推荐