Skip to main content
 首页 » 编程设计

python之根据方法返回不同的响应或数据之Django rest framework

2025年05月04日32kenshinobiy

请帮忙。我需要做的是根据方法获得不同的响应或数据——像这样:

if request.method == 'POST':

return all the items created including the last one (actually it returns only >the last item created)

else if request.method == 'PUT':

return the last item updated

View .py

class RubroViewSet(viewsets.ModelViewSet): 
    queryset = Rubro.objects.all() 
    serializer_class = RubroSerializer 

模型.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__' 

请您参考如下方法:

使用 viewsets.Viewset 是一种简单的方法。 http://www.django-rest-framework.org/api-guide/viewsets/

或使用@detail_route()

    @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)