return response in django-rest-framework
Ich Schreibe eine app, die in django-rest-framework:
Meine views.py:
class tagList(generics.ListCreateAPIView,APIView):
model = tags
serializer_class = getAllTagsDetailSerializer
def get_queryset(self):
print "q1"
print self.request.QUERY_PARAMS.get('tag', None)
print self.request.user
print "q1"
if tags.objects.filter(tag='burger')!= None:
return tags.objects.filter(tag='burger')
else:
content = {'please move along': 'nothing to see here'}
return Response(content, status=status.HTTP_404_NOT_FOUND)
Möchte ich zurückkehren-Fehler-status-code, wenn die Abfrage gibt Keine.
Aber das problem ist, wenn ich versuchen, die Antwort, die er wirft Fehler:
Exception Type: TypeError
Exception Value:
object of type 'Response' has no len()
Exception Location: /usr/local/lib/python2.7/dist-packages/django/core/paginator.py in _get_count, line 53
Else if Abfrage das Ergebnis Nicht None ist, es funktioniert.
Wie kann ich einstellen, dass status-code auf Django rest framework.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie versuchen, diese
Ich denke, es wird funktionieren....
Die Methode wird voraussichtlich wieder ein QuerySet, nicht ein Response-Objekt, meine Wette ist, dass Sie werfen Sie einen
Exception
entweder eineAPIException
oder eineHttp404
.Sowieso Ihre Handhabung scheint seltsam, ich denke, Sie sollte einfach nur wieder das QuerySet und framework behandeln, wenn das Ergebnis leer ist oder nicht. Die Methode sollte so Aussehen:
class couponsList(generics.ListCreateAPIView,APIView): model = coupons def get_object(self,key): try: return app.objects.filter(appKey=key).exists() except app.DoesNotExist: raise Http404 def get(self,request,format=None): key = self.request.QUERY_PARAMS.get('AppKey', None) self.get_object(key) da = coupons.objects.all() serializer_class = getAllCouponsDetailSerializer(da) return Response(serializer_class.data)
try & außer nicht zu arbeiten.Bitte Helfen Sie.Ich möchte, um zu überprüfen, Apikey gültig ist, dann nur weiterHttp404
Ausnahme.