Django中的外地字段

时间:2013-06-24 07:06:02

标签: django django-models foreign-keys

我目前正在研究Django项目。  我在其中一个模型中使用Foreign Fields。

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 shell中尝试了一下 我知道即使我使用

,我也会得到相同数量的结果
 p = Purchase.objects.filter(user_id=request.user,game_id=request.POST['gameid'])

所以我怀疑的是,模型中定义的字段名称和DB中这些字段的确切名称是否可以互换使用?任何进一步的信息或解释将不胜感激。 感谢

1 个答案:

答案 0 :(得分:0)

Django为外键字段执行此操作。如果要在数据库中使用相同的名称,则可以使用db_column

定义列名称
user = models.ForeignKey(User, db_column='user')

P.S您可以同时使用user_iduser来引用外键。这绝对没问题。但我建议你使用模型级名称来避免混淆。