Я тестирую модуль django
Страница администратора для моделей с m2m-relations
. У меня есть пользовательская функция clean
в моих моделях, поэтому мне нужны тесты для страницы администратора.
Проблема в том, что я не знаю, как создать словарь полезной нагрузки для сообщения тестового клиента с ManyToManyField
.
models.py:
class Statistics(models.Model):
short_name = models.CharField(default=u"", max_length=200)
full_name = models.CharField(default=u"", max_length=200)
id = models.AutoField(primary_key=True)
class Query(models.Model):
url = models.CharField(default=u"", max_length=200)
query = models.TextField(default=u"")
id = models.AutoField(primary_key=True)
title_fi = models.CharField(default=u"", max_length=500)
statistics = models.ManyToManyField(Statistics, related_name='queries')
def clean(self):
print("Query clean: ",self.__dict__)
try:
json_query = json.loads(self.query.replace("\'", "\""))
except Exception:
raise ValidationError(u'Väärin muodostettu query')
if not get_data(self.url, json_query):
raise ValidationError(u'Väärin muodostettu query tai query ei palauttanut lukua')
tests.py:
response = self.client.post('/admin/key_values/query/add/', {'url': url, 'query': str(query),'title_fi':'fi'}, follow=True)
Это не проходит, потому что поле статистики не может быть неопределенным. (Если я поставлю blank=True
, мой вышеупомянутый тест пройдет, но я не хочу этого делать!).
Как я могу включить хотя бы один объект статистики в мой тест?