首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Django动态访问模型属性

Django动态访问模型属性
EN

Stack Overflow用户
提问于 2020-05-28 08:48:30
回答 1查看 224关注 0票数 1

我对Django非常陌生,所以这个问题可能是非常基本的。

我有一个名为UserScores的模型,它包含16个不同的分数属性,每个属性都代表基于他/她所玩的游戏的用户得分。

当用户玩游戏并完成游戏时,他在游戏中获得的分数应该添加到他/她的UserScores对象的相关属性中。代码看起来如下:

代码语言:javascript
运行
复制
if game_name == "game_1":
  self.game1_score += score
elif game_name == "game_2":
  self.game2_score += score
...

在php中,我经常运行这样的代码:

代码语言:javascript
运行
复制
obj.{game_name} += score

所以不管游戏名是什么,正确的属性都被编辑了,

现在我的问题是,

是否有一种动态方式来访问Django模型对象上的属性?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-31 08:43:15

您可以使用getattr/setattr来实现您想要的结果。例如,要设置字段值:

代码语言:javascript
运行
复制
old_value = getattr(obj, field_name)
setattr(obj, field_name, old_value + score)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62060577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档