Мені потрібно додати пару полів до групової моделі в джанго contrib.auth
додаток за допомогою:
field_name = models.CharField(...)
field_name.contribute_to_class(Group, "field_name")
Моя проблема полягає в створенні міграцій ізПівдень, оскільки вони створені в каталозі "міграції" всередині програми auth, і, оскільки система вже випускається, мені не дозволяється змінювати поточну установку django на сервері для міграції auth
.
Хтось знає, як створити та завантажити такі міграції?
Заздалегідь дякую за вашу допомогу.
Відповіді:
3 для відповіді № 1Джанго не дає змоги змінювати стандартні моделі особливо просто. Я б не рекомендував вам підклас Group
, тому що це дуже дратує отримати вбудований функціонал для посилання на нову модель.
Звичайне, що тут потрібно зробити - це створити GroupProfile
модель, яка має Group
як унікальний закордонний ключ. Це може бути не елегантно, але у нього не буде величезних витрат на технічне обслуговування, що поставляється із розщепленням вихідного коду Django.
Також: якщо ви не можете змінити код Django на сервері, ви не зможете зробити це за допомогою сирого хакерства SQL або розумної міграції. Південь не буде проблемою - проблема полягає в тому, що Django ORM помітить, що в таблиці SQL є поля, які не вказані в коді, і це призведе до того, що він викине виняток.
0 для відповіді № 2
Оскільки ви використовуєте хак для виправлення моделі, я думаю, ви повинні написати міграцію вручну. Спробуйте скопіювати іншу міграцію та змінити add_column
і models
по-перше, якщо це не вдасться - завжди є варіант з назвою "raw sql" :)