Я отвечаю на свой вопрос, но я также хочу начать обсуждение, если есть какое-либо лучшее решение.
С небольшой помощью отладчика я обнаружил, что в form.errors
также появляются неполевые ошибки. Но на этот раз не было ни одного ключа, названного как неполевые ошибки. Все, что я нашел, было немного странным ключом __all__
, но он позволил мне получить доступ к требуемым ошибкам:
class FormTest(TestCase)
def test_fields_errors(self):
"""
Suppose form has two fields and either one has to be filled
"""
form = TestForm()
form.full_clean()
self.assertFalse(form.is_valid())
self.assertIsInstance(
form.errors.as_data()['__all__'][0],
ValidationError
)
assertEquals(
errors['__all__'][0],
'Fill at least one field'
)
Итак, я смог найти ошибку, которую искал во время тестирования повышения ошибок вне поля .