Можете ли вы выполнять итерации по полям модели, когда вы перезаписываете метод save() в django?
Я вызываю пользовательский метод сохранения в моей модели. Метод сохранения предназначен для создания некоторых значений в модели на основе содержимого текстового поля TextField. Это содержимое хранится в словаре и генерируется правильно.
Я пытаюсь написать цикл for для хранения значений словаря. Ключи соответствуют именам полей модели:
def save(self, *args, **kwargs):
if self.text != "":
results_dict = analyze(self.text)
for field_name in field_names_list:
self.field_name = results_dict[field_name]
Значение не хранится в соответствующем поле. Нужно ли мне вместо этого использовать setattr?
Попробуйте это:
def save(self, *args, **kwargs):
if self.text != "":
results_dict = analyze(self.text)
for field_name in field_names_list:
setattr(self, field_name, results_dict[field_name])
super().save(*args, **kwargs)