Django заполнить таблицу DB при миграции
Подскажите как заполнить таблицу базы данных при миграции. Есть модель подписок, у нее названия константы, хотелось бы при миграции чтобы эта таблица сразу заполнилась данными из списка. Подскажите как правильно реализовать. Заранее всем спасибо. Модель ниже:
class Membership(models.Model):
MEMBERSHIP_CHOICES = (
('Free', 'free'),
('Start', 'start'),
('Optimal', 'opt'),
('Freedom', 'frdom')
)
membership_type = models.CharField(choices=MEMBERSHIP_CHOICES, default='Free', max_length=30)
price = models.IntegerField(default=10)
description = models.TextField(max_length=150, blank=True, default='')
period = models.CharField(max_length=10, blank=True, default='')
Ответы (1 шт):
Автор решения: MilkyWay
→ Ссылка
Есть два пути:
- Через изменение файла миграции - сложно и в целом плохо скажется на поддержке кода. Почитайте о файлах миграции.
- Через заполнение базы начальными данными из предварительно подготовленных файлов fixtures. Это файлы в формате JSON в которых вы описываете чем заполнить вашу модель. Нужно создать папку fixtures в директории приложения. Подробней почитайте тут https://djbook.ru/rel1.7/howto/initial-data.html
На сколько я понимаю django не предоставляет возможности заполнять модель данными из model.py. Что логично в рамках идеологии MVC.