我目前正在研究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中这些字段的确切名称是否可以互换使用?任何进一步的信息或解释将不胜感激。 感谢
答案 0 :(得分:0)
Django为外键字段执行此操作。如果要在数据库中使用相同的名称,则可以使用db_column:
定义列名称user = models.ForeignKey(User, db_column='user')
P.S您可以同时使用user_id
和user
来引用外键。这绝对没问题。但我建议你使用模型级名称来避免混淆。