25

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

f = models.ForeignKey(AnotherModel)

当 Django 同步数据库时,会调用 db 中创建的文件f_id,并自动加上 '_id' 后缀。

问题是我希望数据库中的这个字段完全按照我在模型中定义的名称命名,f在这种情况下。我怎样才能做到这一点?

4

1 回答 1

34

原来有一个关键字参数叫做db_column. 如果您希望数据库中名为“f”的字段非常简单:

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

进一步参考:

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

如果您的数据库列名是 SQL 保留字,或者包含 Python 变量名中不允许使用的字符(尤其是连字符),那没关系。Django 在幕后引用列名和表名。

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

于 2012-10-29T05:11:51.077 回答