@TitanFighter

Можно ли, стоит ли и если «да», то как... в модели помимо поля указывать сразу возможные значения этого поля и записывать их в БД при миграции?

День добрый.
К примеру есть
class Country(models.Model):
    country_name = models.CharField('Country', max_length = 30)

и я знаю, что в БД мне нужно всего 3 страны, скажем Ирландия, Венгрия и Турция. Насколько я понимаю, то при миграции создаются только таблицы и поля.
Вопросы:
1) Можно ли...
2) Стоит ли...
3) и если "да", то как... при миграции модели писать сразу данные в БД?

Спасибо.
  • Вопрос задан
  • 208 просмотров
Пригласить эксперта
Ответы на вопрос 3
dimonchik2013
@dimonchik2013
non progredi est regredi
Ответ написан
Комментировать
sim3x
@sim3x
можно
https://docs.djangoproject.com/en/1.8/ref/models/f...

стоит - вопрос в поддержке нормальной форми БД

при необходимости, да писать в миграции данные, необходимые для работы приложения
Ответ написан
Bahusss
@Bahusss
Python Master
Итак, как вы уже выяснили choices не записываются в базу - они хранятся исключительно в коде и используются ORM для валидации данных и формировании списка вариантов в формах, например в Django-админке.

При поставленной задаче на ум приходит следующее:

Использовать choices и хранить список стран в настройках проекта - Django settings, таким образом будет проще пользоваться возможностями Django ORM для валидации данных и представления данных в формах. Стоит учесть, что при добавлении новой страны придется изменять настройки и перезапускать (перевыкатывать) проект.

Затем, написать датамиграцию, чтобы добавить необходимые вам страны в базу. В такой миграции вы сможете в цикле пройтись по названиям стран из настроек проекта и создать все необходимые объекты, если они еще не созданы.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы