Django: как запустить создание ContentTypes для новых моделей? - PullRequest
8 голосов
/ 02 ноября 2011

В какой момент создаются новые ContentTypes и как я могу вызвать это сам?

У меня есть группа южных миграций, создающих новые модели и тому подобное. После того, как все это сделано, происходит окончательная миграция данных, которая назначает разрешения для этих новых объектов любым группам, у которых уже есть связанные разрешения. (Настоящим «Связанные разрешения» выбраны мной, чтобы иметь смысл в приложении)

Однако ContentTypes для вновь созданных моделей еще не доступны, когда я запускаю эту миграцию данных. Это когда я сначала запускаю все другие миграции, и только потом запускаю дополнительную миграцию данных. То есть выполните команду дважды. Но создание этого ручного патча в моем случае неосуществимо.

Так что я бы хотел вручную запустить создание ContentTypes для любых новых моделей прямо перед запуском миграции данных. Как это сделать?

1 Ответ

8 голосов
/ 02 ноября 2011

Вы должны использовать ContentType.objects.get_for_model(), который создает экземпляры ContentType по требованию (также добавляет некоторое кэширование).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...