带有_id的Django后缀ForeignKey字段

Sim*_*Liu 14 django foreign-keys

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

f = models.ForeignKey(AnotherModel)
Run Code Online (Sandbox Code Playgroud)

当Django同步数据库时,将调用db中创建f_id的字段,自动以"_id"为后缀.

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

Sim*_*Liu 21

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

f = models.ForeignKey(AnotherModel, db_column='f')
Run Code Online (Sandbox Code Playgroud)

进一步参考:

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

如果你的数据库列名是SQL保留字,或包含未在Python变量名不允许的字符 - 值得注意的是,连字符 - 没关系.Django在幕后引用了列名和表名.

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