2017-05-13 1 views
0

Das ist mein get-Methode:Wie erstellt man eine eindeutige Methode für URL-Parameter?

if request.method == 'GET': 
     myObject = myObjectClass.objects.all() 
     serializer = myObjectSerializer(myObject, many=True) 
     return Response(serializer.data) 

Nehmen wir an, dass Antwort auf diese Weise sieht:

[ 
    { 
    "id": 1, 
    "data1": 12, 
    "data2": "example1" 
    }, 
    { 
    "id": 2, 
    "data1": 11, 
    "data2": "example3" 
    }, 
    { 
    "id": 3, 
    "data1": 12, 
    "data2": "example3" 
    } 
] 

würde ich http://localhost:8000/data/?data1=12 in Antwort zu erhalten mit URL erstellen Methode mag:

[ 
     { 
     "id": 1, 
     "data1": 12, 
     "data2": "example1" 
     }, 
     { 
     "id": 3, 
     "data1": 12, 
     "data2": "example3" 
     } 
] 

Mein Problem ist, dass ich einzigartige Methode erstellen möchte. Zum Beispiel könnten wir URL http://localhost:8000/data/?data2="example3" und als Antwort verwenden wir würden erhalten:

[ 
      { 
      "id": 2, 
      "data1": 11, 
      "data2": "example3" 
      }, 
      { 
      "id": 3, 
      "data1": 12, 
      "data2": "example3" 
      } 
    ] 

Ich frage mich, ob dies möglich ist? Was ist die beste Lösung? Ich habe versucht mit request.GET, request.GET.get() usw., aber nichts funktioniert. Danke im Voraus.

Antwort

0

request.GET.get() sollte für das Abrufen der Abfrageparameter arbeiten Sie entlang der Linien sind sending.Something:

if request.GET.get('data1'): 
    print request.GET.get('data1') 

if request.GET.get('data2'): 
    print request.GET.get('data2') 

Alternativ können Sie dynamische URL-Muster verwenden regex.

+0

Aber ich muss jeden Fall separat machen. Vielleicht gibt es eine Methode, die für alle Fälle passt? – wahtdbogh

+0

Sie meinen, haben separate Ansichten für jeden Fall? Wenn ja, dann antworten dynamische URL-Muster wie 'xyz.com/data1 /' mit Daten wie '{data1:" example "}' und 'xyz.com/data2 /' mit get query als '{data2:" etwas mehr "}". –

Verwandte Themen