У меня есть этот класс:
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
методе, но я могуне можете найти, как или какой шаблон определить.