Infos aus django request holen...

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Benutzeravatar
Whitie
User
Beiträge: 216
Registriert: Sonntag 4. Juni 2006, 12:39
Wohnort: Schulzendorf

Hi Leute,
ich steh gerade etwas auf dem Schlauch. Ich habe input (checkbox) Felder in einem Formular mit dem gleichen Namen. Wenn ich nach dem Absenden ein

Code: Alles auswählen

print request.POST
mache, sind alle angekreuzten Felder in einer Liste:

Code: Alles auswählen

[18/May/2007 12:41:50] "POST /order/print_order/ HTTP/1.1" 200 6317
<MultiValueDict: {'state': ['set_free'], 'free': ['4', '6']}>
Mache ich danach

Code: Alles auswählen

print request.POST['free']
erhalte ich 6.

Wo ist meine Liste? Ich hab schon verschiedene Möglichkeiten probiert, bekommen aber immer nur das letzte Element der Liste.

Gruß, Whitie
Benutzeravatar
keppla
User
Beiträge: 483
Registriert: Montag 31. Oktober 2005, 00:12

Wo ist meine Liste? Ich hab schon verschiedene Möglichkeiten probiert, bekommen aber immer nur das letzte Element der Liste.
Das ist Absicht, damit man nicht aus versehen mal ein nicht-String-Objekt hat, weil ein fieser User böse Dinge macht.
Wenn du eine Liste haben willst, musst du das explizit sagen, in Django hat das MultiValueDict dazu die Methode "getlist".
Benutzeravatar
Whitie
User
Beiträge: 216
Registriert: Sonntag 4. Juni 2006, 12:39
Wohnort: Schulzendorf

Danke, das hatte ich gesucht.
Steht die Methode auch in der Dokumentation ? Ich hatte fast alles durchsucht.

Gruß, Whitie
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:


GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten