带有_id的Django后缀ForeignKey字段

问题描述 投票:10回答:1

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

f = models.ForeignKey(AnotherModel)

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

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

django foreign-keys
1个回答
17
投票

事实证明,有一个名为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

© www.soinside.com 2019 - 2024. All rights reserved.