Тестовые материалы Django и типы контента - PullRequest
13 голосов
/ 08 ноября 2011

Я использую внешний ключ django ContentType в своей модели и использую его в приборах для модульных тестов.

Поэтому мне приходится жестко кодировать content_type_id в моем приборе, но django иногда инициализирует его с другим значением, и поэтому мои тесты не пройдены.

Так есть ли способ безопасно предсказать content_type_id модели илилюбой другой правильный способ справиться с такими ситуациями?

1 Ответ

19 голосов
/ 08 ноября 2011

Используйте естественные ключи: https://docs.djangoproject.com/en/dev/topics/serialization/#natural-keys

Большая часть документации относится к тому, как добавить возможность в ваши собственные модели, но ContentType уже поддерживает их, поэтому просто добавьте --natural-foreign к вашей dumpdata команде управления:

$ python manage.py dumpdata myapp --indent=4 --natural-foreign
...