25

モデルに外部キーとして次のように定義されたフィールドfがあるとします。

f = models.ForeignKey(AnotherModel)

Djangoがデータベースを同期すると、dbで作成されたファイルが呼び出されf_id、自動的に「_id」という接尾辞が付けられます。

f問題は、この場合、モデルで定義したものとまったく同じ名前のdbのこのフィールドが必要なことです。どうすればそれを達成できますか?

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 に答える