اذهب إلى المحتوى

السؤال

نشر

أنا أستخدم إطار عمل rest مع ModelViewSet

class DrawingViewSet(viewsets.ModelViewSet):
    queryset = m.Drawing.objects.all()
    serializer_class = s.DrawingSerializer
    filterset_fields = ['user']
    def list(self, request):
        queryset = m.Drawing.objects.all()
        serializer = s.DrawingSerializer(queryset, many=True)
        
        return Response(serializer.data)

باستخدام هذا الكود ، يمكنني استخدام filter مثل

/?user=1

ولكن ليس دائما القيمة تساوي 1, كيف يمكنني الحصول على بيانات المصادقة في القائمة؟

Recommended Posts

  • 0
نشر

يمكنك الحصول على بيانات المصادقة في طريقة list باستخدام request.user للوصول إلى معلومات المستخدم المصادق. يمكنك استخدام هذه المعلومات في إنشاء الاستعلام لاسترداد الرسومات التي يملكها المستخدم. يمكنك تحديد المستخدم باستخدام filterset_fields كما هو موضح في الكود الذي قمت بتقديمه.

مثال على كيفية استخدام request.user في القائمة:

class DrawingViewSet(viewsets.ModelViewSet):
    queryset = m.Drawing.objects.all()
    serializer_class = s.DrawingSerializer
    filterset_fields = ['user']
    
    def list(self, request):
        queryset = m.Drawing.objects.filter(user=request.user)
        serializer = s.DrawingSerializer(queryset, many=True)
        
        return Response(serializer.data)

في هذا المثال، ستتم فلترة الرسومات التي يملكها المستخدم المصادق عن طريق استخدام request.user وإرجاع النتائج باستخدام serializer.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...