【问题标题】:Django (SQLite) - cannot access foreign key - no such column - custom sqlDjango (SQLite) - 无法访问外键 - 没有这样的列 - 自定义 sql
【发布时间】:2016-12-05 22:59:32
【问题描述】:

每当我尝试访问外键时,我都会收到“没有这样的列”。这是一个模型:

class PerkLevel(models.Model):
    perk_id = models.ForeignKey('Perk', on_delete=models.CASCADE, related_name='perk_id')
    perk_level = models.IntegerField(default=1, choices=PERK_LEVELS)
    perk_desc = models.CharField(max_length=250, null=True, blank=True)

    class Meta:
        db_table = u'pl'

当我尝试执行这样的简单查询时:

cursor.execute("SELECT perk_id FROM pl")

我得到“没有这样的列:perk_id”。自己写sql时如何获取外键?

【问题讨论】:

    标签: django sqlite foreign-keys


    【解决方案1】:

    Django 将自己的_id 添加到外键的末尾。在这种情况下,我会使用perk_id_id

    【讨论】:

    • ... 这就是为什么你不应该首先在 ForeignKey 名称中使用 _id 的原因之一。就叫它perk,那么db列就是perk_id
    • 我希望 Django 不会乱用我选择的名称。就我而言,我第一次做对了!在尝试了许多其他事情后,我偶然发现了这个解决方案,因为我隐约记得在文档中阅读过有关“_id”的内容。
    猜你喜欢
    • 1970-01-01
    • 2020-08-16
    • 1970-01-01
    • 2012-09-30
    • 1970-01-01
    • 2022-01-05
    • 2020-06-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多