Я хочу протестировать свой 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})