M2m-объект отношения в посте клиента тестирования администратора django - PullRequest
0 голосов
/ 02 ноября 2018

Я тестирую модуль 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, мой вышеупомянутый тест пройдет, но я не хочу этого делать!). Как я могу включить хотя бы один объект статистики в мой тест?

...