Django动态访问模型属性

塔里巴巴人

我是Django的新手,所以这个问题可能很基础。

我有一个名为的模型UserScores,其中包含16个不同的得分属性,每个属性都基于他/她玩过的游戏来表示用户得分。

当用户玩游戏并完成游戏时,应将他在该游戏中获得的分数添加到其UserScores对象的相关属性中。所以代码看起来像这样:

if game_name == "game_1":
  self.game1_score += score
elif game_name == "game_2":
  self.game2_score += score
...

在PHP中,我曾经运行过这样的代码:

obj.{game_name} += score

因此,无论游戏名称是什么,都必须编辑正确的属性,

现在我的问题是

有没有动态的方式来访问Django模型对象上的属性?

温斯顿

您可以使用getattr / setattr实现所需的功能。例如,要设置字段值:

setattr(obj, field_name, gettattr(obj, field_name) + score)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章