模型 - 外键db_column命名问题

时间:2015-12-01 13:38:31

标签: python django model foreign-keys

我遇到Django中 db_column 参数的问题。假设我在models.py中创建了一个模型:

class Stats(models.Model):
    fk = models.ForeignKey(Game, db_column='fk_gameId')
    score = models.IntegerField(default=0)

并尝试对从模型生成的表进行插入,插入操作的示例代码如下:

 dbQuery = Stats(fk_gameId = requestedGameId,
                 score = gameInfo['score'])

 dbQuery.save()

执行的是系统在执行时抛出以下错误:

  

TypeError:' fk_gameId'是此函数的无效关键字参数

但是,如果我更改insert语句的第一个参数,如下所示:

 dbQuery = Stats(fk_id = requestedGameId,
                 score = gameInfo['score'])

 dbQuery.save()

然后它完美无缺,尽管数据库中的列名是" fk_gameId "正如我在模型中定义的那样。

是正常还是我错过了什么。你能帮我理解这里的问题吗?谢谢。

1 个答案:

答案 0 :(得分:0)

db_column更改数据库中列的名称。它不会更改Django使用的模型属性的名称。

由于您已将字段定义为fk = models.ForeignKey(...),因此Django中字段的名称仍为fk,原始ID字段名为fk_id