首页 > 解决方案 > 提示:也许您的意思是引用该列

问题描述

当我打开页面时,我收到错误:

列 user_landings_landing.flow_chatbot_id 不存在 LINE 1: ...ding"."message", "user_landings_landing"."video", "user_land
...

我该如何解决?

我试过`

SELECT "flow_chatbot" FROM user_landings_landing;

SELECT flow_chatbot FROM user_landings_landing;

但这并不是低效的。我得到:

在此处输入图像描述

用户登陆/模型

class Landing(models.Model):
    user = models.ForeignKey(
        User,
        related_name='landings',
        verbose_name=_('user')
    )
    flow_chatbot = models.ForeignKey(Flow, verbose_name=_('Flow chatbot'), blank=True, null=True)
    #other fields...

user_landings_landing 表

在此处输入图像描述

f = Flow.objects.create(title='aaa', position=1)
Landing.objects.create(
    user = User.objects.first(),
    slug = 'landing',
    flow_chatbot = f
)

django.db.utils.ProgrammingError:关系“user_landings_landing”的列“flow_chatbot_id”不存在

标签: djangopostgresql

解决方案


您的表有一个 "flow_chatbot" 列,Django 期望该列是 "flow_chatbot_id" 。Django 期望外键列默认以“_id”结尾。

您可以使用“db_column”属性来指定不同的列名(例如,如果您试图将 Django 移植到已经存在的数据库中)。


推荐阅读