0

現在、Django プロジェクトに取り組んでいます。モデルの 1 つで外部フィールドを使用しています。

class Purchase (models.Model):
       user = models.ForeignKey(User, blank = True, null = True)
       game = models.ForeignKey(Game)
       ...

そして、次のようなビューでこれらの値にアクセスします

p = Purchase.objects.filter(user=request.user,game=request.POST['gameid'])

DB(私はPostgresを使用しています)では、購入テーブルのフィールドは、ユーザーとゲームのそれぞれuser_idとgame_idです。Django のデフォルトでは、外部フィールドに _id をサフィックスとして付けると思います。

だから私はmanage.pyシェルで少し試してみましたが、使用しても同じ量の結果が得られることがわかりました

 p = Purchase.objects.filter(user_id=request.user,game_id=request.POST['gameid'])

だから私の疑問は、モデルで定義されたフィールド名とDBのそれらのフィールドの正確な名前を同じ意味で使用できるかどうかということです? さらなる情報や説明をいただければ幸いです。ありがとう

4

1 に答える 1

0

Django は、外部キー フィールドに対してこれを行います。データベースに同じ名前を付けたい場合は、db_columnを使用して列名を定義できます。

user = models.ForeignKey(User, db_column='user')

PS と の両方user_idを使用して、user外部キーを参照できます。これは絶対に問題ありません。ただし、混乱を避けるために、モデル レベル名を使用することをお勧めします。

于 2013-06-24T07:13:56.493 に答える