2011-01-02 4 views
1

Angenommen, der Parameter, den ich übergeben möchte, heißt printdata und printdata=['a', 'b', 'c'].django Frage: Wie ein Listenparameter mit der POST-Methode übergeben?

Ich verwende "input type="hidden" name="alist" value={{printdata}}>", um den Parameter zu übergeben. Allerdings, wenn ich versuchen, den Parameter in views.py mit dem folgenden Code abzurufen:

params = request.POST 

params["alist"] gleich ['a', statt ['a', 'b', 'c']. Ich vermute, dass django das Ende eines Parameters mit , identifiziert.

Haben Sie Vorschläge oder andere Methoden, um den Parameter zu übergeben?

Antwort

0

Stellen Sie sicher, dass Sie die Liste in Ihrem HTML-Code in Anführungszeichen setzen. dh:

<input type="hidden" name="alist" value="{{printdata}}"> 
0

Verwenden

request.POST.getlist('alist') 

die Werte zu erhalten.

5

Verwenden Sie mehrere versteckte Felder, eines für jeden Wert in Ihrem HTML:

<input type="hidden" name="alist" value="1" /> 
<input type="hidden" name="alist" value="2" /> 
<input type="hidden" name="alist" value="3" /> 

Auf der Serverseite, request.POST.getlist verwenden, um alle Werte als Liste zu lesen:

alist = request.POST.getlist('alist') 
# 'alist' now contains ['1', '2', '3'] 
0
alist = request.POST.get('alist') 
Verwandte Themen