Python 根据方法返回不同的响应或数据-Django rest框架
请帮忙。我需要做的是根据不同的方法得到不同的响应或数据,比如:Python 根据方法返回不同的响应或数据-Django rest框架,python,django,django-rest-framework,httpresponse,Python,Django,Django Rest Framework,Httpresponse,请帮忙。我需要做的是根据不同的方法得到不同的响应或数据,比如: class RubroViewSet(viewsets.ModelViewSet): queryset = Rubro.objects.all() serializer_class = RubroSerializer # POST def create(self, request): super().create(request) serializer = self.
class RubroViewSet(viewsets.ModelViewSet):
queryset = Rubro.objects.all()
serializer_class = RubroSerializer
# POST
def create(self, request):
super().create(request)
serializer = self.serializer(self.queryset, many=True)
return Response(serializer.data, status=status.HTTP_201_CREATED)
# PUT
def update(self, request, pk=None):
return super().update(request, pk)
如果request.method==“POST”:
全部归还
创建的项目(包括最后一个)实际上只返回>创建的最后一个项目
如果request.method='PUT':
返回最后更新的项目
Views.py
class RubroViewSet(viewsets.ModelViewSet):
queryset = Rubro.objects.all()
serializer_class = RubroSerializer
models.py
class Rubro(models.Model):
nombre = models.CharField(max_length=50)
descripcion = models.TextField()
class Meta:
verbose_name_plural = 'Rubros'
db_table = "core_rubros"
def __str__(self):
return self.nombre
序列化程序.py
class RubroSerializer(serializers.ModelSerializer):
class Meta:
model = Rubro
fields = '__all__'
使用Viewset.Viewset将是一种简单的方法。 或者使用@detail\u路线
@detail_route(methods=['post'])
def some_method(self, request):
serializer = RubroSerializer(data=request.data)
if serializer.is_valid():
return Response({'status': 'success'})
else:
return Response(serializer.errors,
status=status.HTTP_400_BAD_REQUEST)
使用Viewset.Viewset将是一种简单的方法。 或者使用@detail\u路线
@detail_route(methods=['post'])
def some_method(self, request):
serializer = RubroSerializer(data=request.data)
if serializer.is_valid():
return Response({'status': 'success'})
else:
return Response(serializer.errors,
status=status.HTTP_400_BAD_REQUEST)
1.方法:
你可以用收益率代替回报率。
这可能是支持
2.方式:
1.方法:
你可以用收益率代替回报率。
这可能是支持
2.方式:
实际上,viewset允许您在viewset中实现创建和更新方法,以控制不同类型请求的逻辑。在您的情况下,您可以这样做:
class RubroViewSet(viewsets.ModelViewSet):
queryset = Rubro.objects.all()
serializer_class = RubroSerializer
# POST
def create(self, request):
super().create(request)
serializer = self.serializer(self.queryset, many=True)
return Response(serializer.data, status=status.HTTP_201_CREATED)
# PUT
def update(self, request, pk=None):
return super().update(request, pk)
实际上,viewset允许您在viewset中实现创建和更新方法,以控制不同类型请求的逻辑。在您的情况下,您可以这样做:
class RubroViewSet(viewsets.ModelViewSet):
queryset = Rubro.objects.all()
serializer_class = RubroSerializer
# POST
def create(self, request):
super().create(request)
serializer = self.serializer(self.queryset, many=True)
return Response(serializer.data, status=status.HTTP_201_CREATED)
# PUT
def update(self, request, pk=None):
return super().update(request, pk)
文档中提供的示例是否足够?文档中提供的示例是否足够?