如何在Django中覆盖'get_queryset()'

时间:2020-07-19 06:22:22

标签: django django-rest-framework django-views django-serializer django-generic-views

我将在Django中使用通用视图。我定义了serializer_class并覆盖了get_queryset()方法,但是有一个错误告诉我覆盖了get_queryset()方法。我不知道我的覆盖方法有何错误,以及解决该错误该怎么做。这是我的代码。

views.py

from .models import arduino
from .serializers import arduinoToAndroidSerializers, arduinoToDatabaseSerializers
from rest_framework.viewsets import ViewSet
from rest_framework.response import Response
from rest_framework.generics import ListCreateAPIView

class arduinoToAndroidViewSet (ViewSet) :
    def dataSend (self, request) :
        user = self.request.user
        queryset = arduino.objects.filter(name=user)
        serializer = arduinoToAndroidSerializers(queryset, many=True)
        return Response(serializer.data)

class arduinoToDatabaseViewSet (ListCreateAPIView) :
    serializer_class = arduinoToDatabaseSerializers
    def dataReceive (self, request) :
        user = self.request.user
        queryset = self.get_queryset()
        queryset = arduino.objects.filter(queryset, name=user)
        serializer = arduinoToDatabaseSerializers(queryset, many=True)
        return Response(serializer.data)

serializers.py

class arduinoToAndroidSerializers (serializers.ModelSerializer) :
    name = serializers.CharField(source='name.username')
    class Meta :
        model = arduino
        fields = ('name', 'temp', 'humi')

class arduinoToDatabaseSerializers (serializers.ModelSerializer) :
    class Meta :
        model = arduino
        fields = ('temp', 'humi')

除此之外,如果您在我的代码中看到了改进点,请给我提示

1 个答案:

答案 0 :(得分:1)

您可以像这样覆盖查询集。有关更多信息,请参见docs

            generate: {
              attempts: {type: Number, default: 0},
              total: {type: Number, default: 0},
              {timestamps: true}
            },
            verify: {
              attempts: {type: Number, default: 0},
              total: {type: Number, default: 0},
              {timestamps: true}
            }
相关问题