Возврат render_to_string в представлении на основе класса
У меня есть форма на django, которая делается через CreateView
и ajax.
Форма создается нормально через render_to_string
, но когда я пытаюсь опубликовать ее, строка render_to_string
возвращает ошибку NoReverseMatch.
Нашел это очень запутанным, поскольку я пытаюсь сохранить рендеринг в строку в словаре и вернуть его как JsonResponse:
class ProjectFileCreateView(LoginRequiredMixin, CreateView):
model = MyModel
form_class = MyForm
def get(self, request, *args, **kwargs):
"""Handle GET requests: instantiate a blank JSON version of the form."""
data, context = dict(), dict()
form = MyForm()
context = {'form': form,
'slug': self.kwargs['slug']}
data["html_form"] = render_to_string("app/includes/partial_create.html", context, request=request)
return JsonResponse(data)
def post(self, request, *args, **kwargs):
"""
Handle POST requests: instantiate a form instance with the passed POST variables and then check if it's valid.
"""
data = dict()
context = dict()
form = MyForm(request.POST)
if form.is_valid():
form.save()
data["form_is_valid"] = True
context = {'files': MyModel.objects.filter(project__slug=self.kwargs['project_slug']),
'project_slug': self.kwargs['project_slug']}
data["html_form_list"] = render_to_string("project/file_list.html", context)
else:
data["form_is_valid"] = False
data["html_form"] = render_to_string("project/includes/partial_create_file.html", {'form': form}, request=self.request)
return JsonResponse(data)
Я закомментировал render_to_string
и ошибка не возникает, однако объект также не создается.
Полный отслеживание: