Тестирование CreateView с помощью JsonResponse - PullRequest
0 голосов
/ 05 марта 2020

Я хочу протестировать свой CreateView, но так как я недавно начал учиться тестировать Django коды, я не знаю, как его протестировать. Я использую Ajax, поэтому я возвращаю JsonResponse, и перед возвратом ответа сохраняю форму. Я попробовал несколько методов, но я не смог написать успешный тест. Либо он выдает ошибку, либо не может успешно опубликовать данные по URL.

my CreateView:


class MyCreateView(generic.CreateView):
    template_name = 'template.html'
    model = my_model
    form_class = my_form
    success_url = reverse_lazy('my_url')

    def get_request_page(self, page):
        page = self.request.POST[page]
        page = page.split('/')[-2]
        if page == '':
            page = 'Main Page'
        return page

    def form_valid(self, form):
        if self.request.is_ajax():
            obj = form.save(commit=False)
            obj.page = self.get_request_page("page")
            obj.save()
            redirect_url = self.success_url
            return JsonResponse({'info': 'Successfully sent', 'redirect_url': redirect_url, })

    def form_invalid(self, form):
        super(ArrangementFormView, self).form_invalid(form)
        return JsonResponse({'info': form.errors})

...