Django доступ к свойствам модели динамически - PullRequest
1 голос
/ 28 мая 2020

Я новичок в Django, поэтому этот вопрос может быть очень простым c.

У меня есть модель под названием UserScores, которая содержит 16 различных свойств оценки, каждое из которых представляет оценку пользователя в зависимости от игры, в которую он / она играл.

когда пользователь играет в игру и заканчивает sh ее, счет, который он получает в этой игре, должен быть добавлен к соответствующему свойству в его / ее объекте UserScores. поэтому код выглядит так:

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

in php Я использовал такой код:

obj.{game_name} += score

так что независимо от названия игры, правильное свойство был отредактирован,

Теперь мой вопрос:

Есть ли способ динамического c доступа к свойствам объектов модели Django?

1 Ответ

1 голос
/ 31 мая 2020

Вы можете использовать getattr / setattr для достижения желаемого. Например, чтобы установить значение поля:

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