django: интеграционное тестирование. Обновление: выберите правильный выбор. Этот выбор не является одним из доступных вариантов - PullRequest
0 голосов
/ 21 апреля 2020

Я пытаюсь создать интеграционный тест для вида обновления с формой обновления. Проблема, с которой я сталкиваюсь, заключается в том, что форма помечена как недопустимая, причем слишком часто встречается:

Select a valid choice. That choice is not one of the available choices

Модель содержит 2 связанных объекта (внешних ключа), для которых возникает эта ошибка. Обратите внимание, что при работе на встроенном тестовом веб-сервере вид и вид отлично работают. Эта проблема возникает при попытке создать TestCase с помощью клиентского класса.

Я создаю все необходимые экземпляры в методе setUp TestCase и в реальном тестовом использовании client для POST новые данные.

response = self.client.post(
        reverse('edit_form', kwargs={'pk': self.instance.id}),
        data={'id': self.instance.id,
              'comment':self.instance.comment.id,
              'sequence': self.instance.sequence.id,
               #more fields omitted
        })

Показывает только соответствующие поля. Как видно, фактические идентификаторы, используемые для связанных объектов, действительно существуют как записи в БД. Может быть, уместно, что последовательность является скрытым полем. Но у них обоих одна и та же ошибка проверки.

Что вызывает эту проблему с проверкой формы в контрольном примере?

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