Поле модели Django переменной
Быстрый вопрос. Я пытаюсь получить доступ к одному из полей модели, используя переменную.
class ExampleModel(models.Model):
the_field = models.CharField()
the_field_two = models.CharField()
Как получить доступ к полю динамически? Я пробовал:
model = ExampleModel.objects.get(pk=1)
fieldtoget = 'the_field'
test_var = model[fieldtoget]
Но это, похоже, не работает, никаких идей, как бы я это сделал?
Обновление: Думаю, я обновил свой вопрос. Я пытаюсь написать функцию (как часть более крупной функции), которая может не только получить значение поля, но и обновить его из переменной fieldname. Например:
model[fieldtoget] = 'yo'
model.save()
В PHP вы можете использовать {} wrapper - $model{$fieldtoget}
- в качестве примера, поскольку имена динамических переменных надеялись, что в python было что-то подобное:)
Приветствия
Ответы
Ответ 1
Для этого вы можете использовать функцию pythons getattr. В качестве атрибута передайте имя поля.
getattr(model, fieldtoget)
Так как fieldtoget является переменной, это динамическое.
Вы можете использовать setattr, чтобы установить его таким же образом.