我对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模型对象上的属性?
发布于 2020-05-31 08:43:15
您可以使用getattr/setattr来实现您想要的结果。例如,要设置字段值:
old_value = getattr(obj, field_name)
setattr(obj, field_name, old_value + score)
https://stackoverflow.com/questions/62060577
复制相似问题