Django - как расширить сторонние модели без изменения

Я хочу добавить столбец к таблице базы данных, но я не хочу изменять сторонний модуль в случае, если я должен обновить модуль в будущем. Существует ли способ, которым я могу добавить это поле в рамках своего кода так, чтобы с новыми сборками я не добавлял поле вручную?

9
задан user409880 7 August 2010 в 17:58
поделиться

2 ответа

Вы можете использовать ModelName.add_to_class (или .contribute_to_class), но если вы уже запустили syncdb, тогда нет возможности автоматически добавить нужные столбцы.

Для обслуживаемого кода вы, вероятно, захотите расширить, выделив желаемую модель на подклассы в своем собственном приложении, и использовать что-то вроде юга для обработки миграции базы данных или просто использовать OneToOneField и иметь связанную модель (например, UserProfile является авторизованным пользователем).

10
ответ дан 3 November 2019 в 01:52
поделиться

Взгляните на наследование модели Django и абстрактные классы http://docs.djangoproject.com/en/dev/topics/db/models/#multi-table-inheritance

0
ответ дан 3 November 2019 в 01:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: