Как разместить список в Django тестах - PullRequest
0 голосов
/ 14 июля 2020

У меня есть представление, в которое AJAX отправляет сообщения со списком элементов. Я пытаюсь добавить тест для этого.

Как я могу опубликовать список в тесте django? Я получаю данные с помощью этой команды:

listVar = request.POST.getlist('list[]')

Я знаю, что он получает список правильно, потому что я взаимодействую с Jquery, и он возвращает правильный список, но как я могу это сделать, это python? Я пробовал такой код, однако печать listVar всегда дает пустой список:

form = {"list": ["element 1", "element 2"]}
response = self.client.post('/viewurl/', form, follow=True)

Edit --- @Tomek предлагает удалить '[]', однако это вызывает сообщение python запрос на работу, но моя ajax загрузка возвращает пустой список.

Вот фрагмент моего ajax кода:

$.ajax({
        url: window.location.pathname,
        method: 'POST',
        data: {
            list: a_list_I_create_elsewhere
        },
...

1 Ответ

1 голос
/ 14 июля 2020

Просто опустите [] в аргумент getlist.

def request_handler(request):
    listVar = request.POST.getlist('list')
    print(listVar)

должно работать

EDIT Не нарушать совместимость с jQuery. Думаю, я бы протестировал в соответствии с форматом jQuery

form = {"list[]": ["element 1", "element 2"]}
response = self.client.post('/viewurl/', form, follow=True)
...