【问题标题】:Django access to model Properties DynamicallyDjango 动态访问模型属性
【发布时间】:2020-05-28 08:48:30
【问题描述】:

我对 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 模型对象的属性?

【问题讨论】:

    标签: django django-models


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢它有效,但我不能在 21 小时内分配赏金,所以我明天再分配
    • 嗨 Alireza,很高兴我能帮上忙。
    猜你喜欢
    • 1970-01-01
    • 2016-03-17
    • 1970-01-01
    • 2017-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-27
    相关资源
    最近更新 更多