モデルに外部キーとして次のように定義されたフィールドfがあるとします。
f = models.ForeignKey(AnotherModel)
Djangoがデータベースを同期すると、dbで作成されたファイルが呼び出されf_id
、自動的に「_id」という接尾辞が付けられます。
f
問題は、この場合、モデルで定義したものとまったく同じ名前のdbのこのフィールドが必要なことです。どうすればそれを達成できますか?
モデルに外部キーとして次のように定義されたフィールドfがあるとします。
f = models.ForeignKey(AnotherModel)
Djangoがデータベースを同期すると、dbで作成されたファイルが呼び出されf_id
、自動的に「_id」という接尾辞が付けられます。
f
問題は、この場合、モデルで定義したものとまったく同じ名前のdbのこのフィールドが必要なことです。どうすればそれを達成できますか?
さて、というキーワード引数があることがわかりました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