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 в миграции, как указано в документации

Вернуться на верх