Джанго Рест не находит шаблон serializer.errors - PullRequest
0 голосов
/ 10 апреля 2019

У меня есть этот класс:

class TechSolutionDetail(APIView):

    renderer_classes = (TemplateHTMLRenderer,)

    def get(self, request, solution_name=None, format=None):
        techSolution = get_object_or_404(TechSolution, title=djangology_unquote(solution_name), deleted=False)
        return Response({'solution': techSolution},
                        template_name='core2/solution.html')

    # Update a techSolution
    @method_decorator(login_required)
    def post(self, request, solution_id, format=None):
        techSolution = get_object_or_404(TechSolution, pk=solution_id)
        serializer = TechSolutionsSerializer(techSolution, data=request.data)
        if serializer.is_valid():
            return redirect(techSolution.issue.get_view_link())
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

Вкл. get функция Я возвращаю пользовательский HTML-шаблон, поэтому мне нужно определить renderer_classes = (TemplateHTMLRenderer,).

Вкл. post функцию, еслиСбой функции serializer.is_valid() должен вернуть шаблон, сгенерированный Django Rest Framework (DRF), содержащий ошибку проверки (в строке return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)).

Проблема заключается в следующем: если я определяю строку renderer_classes = (TemplateHTMLRenderer,), необходим для функции get, когда фалидатор не работает, он возвращает:

Returned a template response with no `template_name` attribute set on either the view or response

Кажется, мне нужно определить template_name= в строке return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) в post методе, но я могуне можете найти, как или какой шаблон определить.

...