2012-04-23 22 views
18

tôi có mã này trong mẫu của tôi:có được danh sách các bài checkbox trong quan điểm django

{% for email in emails %} 
    {%if email%} 
    <input type="checkbox" name="email" value="{{email}}" /> {{email}}<br /> 
    {% endif %} 
{% endfor %} 

nên sản lượng trong mẫu là:

[email protected] 
[email protected] 
[email protected] 
... 

trong quan điểm của tôi, tôi in yêu cầu của tôi. POST về điều này.

print request.POST 
print request.POST['email'] 
for email in request.POST['email']: 
print email 

tôi đã nhận ra điều này:

<QueryDict: {u'email': [u'[email protected]', u'[email protected]', u'[email protected]'], ..., u'csrfmiddlewaretoken': [u'05e5bdb542c3be7515b87e8160c347a0', u'05e5bdb542c3be7515b87e8160c347a0']}> 
[email protected] 
e 
m 
a 
i 
l 
3 
@ 
s 
a 
m 
p 
l 
e 
. 
c 
o 
m 

câu hỏi của tôi là, làm thế nào tôi có thể nhận được danh sách các email trong quan điểm của tôi? tôi muốn đầu ra sẽ như thế này ..

[email protected] 
[email protected] 
[email protected] 
... 

Trả lời

34

Sử dụng request.POST.getlist:

Trả về dữ liệu với chìa khóa yêu cầu, như một danh sách Python. Trả về danh sách trống nếu khóa không tồn tại và không có giá trị mặc định nào được cung cấp. Nó được đảm bảo trả lại danh sách một số loại trừ khi giá trị mặc định được cung cấp không phải là danh sách.

+5

Cụ thể hơn, 'cho email theo yêu cầu.POST.getlist (' email ') ' –

+0

@burhan Có, nhưng tôi nghĩ đọc một số tài liệu và viết dòng đó hữu ích hơn sao chép. – DrTyrsa

+2

Tôi đồng ý (đó là lý do tại sao tôi +1 câu trả lời của bạn ban đầu), nhưng vì lợi ích của hoàn toàn tôi đã thêm nó. –