Me permite pasar datos en formato json para publicarlos para crear un registro después de crear definitivamente para que el formato json como [{data:data,data:data}] pueda publicarse. ¿Cómo debo hacerlo para que también pueda poner solicitud con múltiples objetos en una solicitud o usando el método de publicación para actualizar?
A continuación se muestra views.py.
from django.shortcuts import render from .models import ListForm # Create your views here. from rest_framework import viewsets from .serializers import ListFormSerializer from rest_framework import filters import django_filters.rest_framework from rest_framework.response import Response from rest_framework import status, viewsets class ListFormViewSet(viewsets.ModelViewSet): """ API endpoint that allows users to be viewed or edited. """ queryset = ListForm.objects.all().order_by('group') serializer_class = ListFormSerializer filter_backends = (django_filters.rest_framework.DjangoFilterBackend, filters.SearchFilter, filters.OrderingFilter,) filterset_fields = ['group','key_description'] search_fields = ['group'] def create(self, request, *args, **kwargs): serializer = self.get_serializer(data=request.data, many=isinstance(request.data,list)) serializer.is_valid(raise_exception=True) self.perform_create(serializer) headers = self.get_success_headers(serializer.data) queryset = self.filter_queryset(self.get_queryset()) page = self.paginate_queryset(queryset) if page is not None: serializer = self.get_serializer(page, many=True) return self.get_paginated_response(serializer.data) serializer = self.get_serializer(queryset, many=True) return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers) # return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)Tal vez necesites algo como esto:
from rest_framework import viewsets from rest_framework.response import Response from rest_framework.decorators import action import json from .models import Post from .serializers import PostSerializer class PostViewSet(viewsets.ModelViewSet): queryset = Post.objects.none() serializer_class = serializers.PostSerializer @action(detail=False, methods=['post']) def update_this(self, request): try: data = json.loads(request.data) except: try: data = dict(request.data) except: data = request.data # You can do everything you want here with data return Response({'code': 0, 'desc': 'OK', 'more_data': {}})