मैं केवल model_info वापस करना चाहता हूं अगर query_params दिया जाता है अन्यथा इसे कुछ त्रुटि संदेश देना चाहिए।Django रेस्ट फ्रेमवर्क में query_params पर सत्यापन
मैंने कोड के नीचे कोशिश की लेकिन यह क्वेरी पैराम में नाम पारित होने पर मुझे गंभीरता दे रहा है।
from rest_framework.validators import ValidationError
class ModelSerializer(serializers.ModelSerializer):
class Meta:
model = ModelName
fields = ('name', 'abbreviation')
def validate_name(self, value):
if value:
return value
else:
raise ValidationError('Enter name')
class ModelNameListList(generics.ListCreateAPIView):
renderer_classes = (JSONRenderer,)
serializer_class = ModelSerializer
def get_queryset(self):
queryset = ModelName.objects.all()
name = self.request.query_params['name']
queryset = queryset.filter(Q(name__icontains=name) | Q(abbreviation__icontains=name)).all()
return queryset
मैं क्योंकि मैं भी पृष्ठांकन उपयोग कर रहा हूँ विधि मिलता है, अगर मैं विधि का उपयोग करेगा यह मुझे वापस आ जाएगी सभी परिणामों का प्रयोग नहीं कर सकते।
जब मैं नीचे दिए गए कोड का उपयोग कर रहा get_queryset में मैं प्रतिक्रिया ऑब्जेक्ट हो रही है कोई लंबाई
def get_queryset(self):
queryset = ModelName.objects.all()
name = self.request.query_params.get('name', None)
if name:
queryset = queryset.filter(Q(name__icontains=name) | Q(abbreviation__icontains=name)).all()
else:
content = {'errors': 'name is missing'}
return Response(content)
return queryset
शायद 'अपवाद होना चाहिए। वैधता त्रुटि' - 'पार्सइरर' विकृत डेटा के लिए आरक्षित है [डॉक्स] (http://www.django-rest-framework.org/api-guide/exceptions/#parseerror) जबकि 'सत्यापनकरण' अच्छी तरह से गठित डेटा के लिए है जो सत्यापन दिशानिर्देशों को पूरा नहीं करता है। – connorbode
@connorbode मैं वही सोच रहा था, लेकिन जब मैं 'व्यू' से 'सत्यापन' को बढ़ाने का प्रयास करता हूं तो यह सर्वर 500 फेंकता है, एक अच्छी तरह से बनाई गई JSON प्रतिक्रिया के बजाय 'सत्यापन त्रुटि ./../' कहता है। मुझे लगता है कि 'प्रमाणीकरण त्रुटि' Serializers के लिए छड़ी है। निश्चित नहीं –