كيف يمكنني الوصول إلى قيم QueryString في Serializer Django Rest Framework

StackOverflow https://stackoverflow.com//questions/23006735

  •  21-12-2019
  •  | 
  •  

سؤال

أحاول الوصول إلى قيم سلسلة الاستعلام في فئة التسلسل.

class OneZeroSerializer(rest_serializer.ModelSerializer):

    location = rest_serializer.SerializerMethodField('get_alternate_name')

    def get_alternate_name(self, obj):
        view = self.context['view']
        print view.kwargs['q']  #output is {}
        return 'foo'


    class Meta:
        model = OneZero

        fields = ('id', 'location')

الآراء

class OneZeroViewSet(viewsets.ModelViewSet):

   serializer_class = OneZeroSerializer

   queryset = OneZero.objects.all()

هل هذه هي الطريقة الصحيحة للوصول إلى سلسلة الاستعلام؟

هل كانت مفيدة؟

المحلول

عند استخدام Viewsets، يمكنك الوصول إلى الطلب في سياق التسلسل (مثلك الوصول إلى العرض).يمكنك الوصول إلى بارامات الاستعلام من هذا

giveacodicetagpre.

عرض السمة. يحتوي Kwargs على الحجج المسماة تحليلها من عنوان URL الخاص بك، لذلك من الجزء المسار.

نصائح أخرى

بحسب ال مستندات تريد استخدامه self.request.QUERY_PARAMS

يمكنك أن ترى أنه يتم استخدامه هنا

تحديث:

اعتبارًا من DRF 3.0:

إن استخدام request.query_params الآن في انتظار الإهمال لصالح الطلب السفلي. query_params

self.context['request'].query_params

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top