Django : Изменение данных, когда модель становится полем выбора
У меня есть анкета, где я спрашиваю об увлечениях людей. В моей форме это было поле Charfield. Я преобразовал это поле с несколькими вариантами выбора. Для моих старых данных я хотел бы обновить их значения: например, если они ввели: "футбол", "катание на лыжах", нужно изменить значение на 'спорт'.
abstract_models.py
class ReferencesProfileBase(models.Model, UsernameNaturalKeyMixin):
HOBBY_CHOICES =
('sport', ('sport')),
('music', ('music')),
('travel', ('travel')),
('other', ('other')),
)
customer = models.OneToOneField(
'customers.CustomerProfile',
verbose_name=_('Customer'),
related_name='referencesprofile',
on_delete=models.CASCADE,
)
hobby = models.CharField(
('Hobby'),
max_length=250,
choices=HOBBY_CHOICES,
blank=True,
null=True,
)
то, что я хочу, чтобы на моих старых данных было сделано автоматически :
sport = ["skiing", "football"]
if hobby in sport :
hobby = "sport"
else :
hobby = "other"
return hobby
но я не знаю, в какой функции писать этот код
Используйте миграцию данных, выполнив операцию RunPython в миграции, как указано в документации