带有_id的Django后缀ForeignKey字段

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了带有_id的Django后缀ForeignKey字段相关的知识,希望对你有一定的参考价值。

假设我的模型中的字段f定义如下,作为外键:

f = models.ForeignKey(AnotherModel)

当Django同步数据库时,在db中创建的字段将被称为f_id,自动以“_id”为后缀。

问题是我希望db中的这个字段与我在模型中定义的完全相同,在这种情况下是f。我怎样才能做到这一点?

答案

事实证明,有一个名为db_column的关键字参数。如果你想在数据库中名为'f'的字段就像这样简单:

f = models.ForeignKey(AnotherModel, db_column='f')

进一步参考:

用于此字段的数据库列的名称。如果没有给出,Django将使用该字段的名称。

如果您的数据库列名是SQL保留字,或者包含Python变量名中不允许的字符 - 特别是连字符 - 那就没问题。 Django在幕后引用了列名和表名。

https://docs.djangoproject.com/en/dev/ref/models/fields/#db-column

以上是关于带有_id的Django后缀ForeignKey字段的主要内容,如果未能解决你的问题,请参考以下文章

django

如何限制 Django raw_id_field 的 ForeignKey 选择的选择

Django admin List Display + ForeignKey = Empty Change List

相当于 django 上的 entry.objects.filter(foreignkey__attribut='x') 和 .get()

在Django中使用ForeignKey()报错问题的解决

带有时间戳的 Django 过滤器模型