我遇到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 "正如我在模型中定义的那样。
是正常还是我错过了什么。你能帮我理解这里的问题吗?谢谢。
答案 0 :(得分:0)
db_column
更改数据库中列的名称。它不会更改Django使用的模型属性的名称。
由于您已将字段定义为fk = models.ForeignKey(...)
,因此Django中字段的名称仍为fk
,原始ID字段名为fk_id
。