Я работаю в форме, которая должна использовать класс сериализатора рамки django rest в качестве формы. Позвольте мне показать вам немного кода, чтобы вы могли лучше понять.Django Rest Framework - почему serializer.data пуст
В моей модели у меня есть свойство, которое возвращает класс сериализатора динамически:
@property
def content_serializer_class(self):
backend_module = self.backend_module
if backend_module == "youtube":
return YoutubeSerializer
elif backend_module == "googleplay":
return GoogleplaySerializer
elif backend_module == "bellone":
return BelloneSerializer
elif backend_module == "rogersvod":
return RogersvodSerializer
Тогда у меня есть мнение:
class ContentCreateView(LoginRequiredMixin, PermissionRequiredMixin, APIView):
renderer_classes = [TemplateHTMLRenderer]
template_name = 'delivery/content_form.html'
permission_required = 'delivery.change_delivery'
def get(self, request, delivery_id):
delivery = get_object_or_404(Delivery, pk=delivery_id,owner=self.request.user)
if not delivery.can_change:
raise Http404
return Response({'serializer': delivery.content_serializer_class, 'delivery': delivery})
def post(self, request, delivery_id):
delivery = get_object_or_404(Delivery, pk=delivery_id,owner=self.request.user)
if not delivery.can_change:
raise Http404
serializer = delivery.content_serializer_class(data=request.data)
if not serializer.is_valid():
return Response({'serializer': delivery.content_serializer_class, 'delivery': delivery})
print 'serializer', serializer.data
nextUrl = self.request.POST.get("next", "")
if nextUrl:
return redirect(nextUrl)
else:
return redirect(reverse('delivery:delivery-detail', args=[delivery_id]))
И мой шаблон:
<form role="form" id="form-content" class="form-horizontal" method="post">
{% csrf_token %}
<input type="hidden" id="id-next" name="next" value="" />
{% render_form serializer template_pack='rest_framework/horizontal' %}
</form>
I Следующее this guide.
Проблема в том, что когда я пытаюсь получить json из сериализатора (serializer.data), он пуст. Валидация работает правильно, форма отображается правильно, но данные json пусты.
Что мне не хватает? Спасибо за любую помощь.
Спасибо за ваш ответ. Этот сериализатор не связан ни с одной моделью, это просто для создания json. Я все равно попробую, спасибо –