2014-09-04 35 views
0

對不起,首先是愚蠢的問題。python/django - [u'']不爲空

我越來越像同類型的用戶輸入列表:

<input name="booknames" type="text"> 
<input name="booknames" type="text"> 
<input name="booknames" type="text"> 

和viws:

if request.POST.getlist('booknames'): 
    print 'yes' 
else: 
    print 'no' 

即使沒有用戶輸入那裏,我得到yes。我打印了名單,我得到了空的[u'']

我錯過了什麼?

回答

7

[u'']不爲空。這是一個包含一個元素的列表,即空字符串。如果列表中有任何元素,則該列表會在布爾上下文中被視爲True。如果您想查看您的列表是否包含任何非空元素,請嘗試any(request.POST.getlist('booknames'))

+0

哇,太棒了!不知道。謝謝噸 – doniyor 2014-09-04 19:10:21

+0

你知道如何在django模板中的任何''? – doniyor 2014-09-04 19:11:47

+1

我不認爲有內置的方法可以做到這一點,但編寫一個'|任何'自定義過濾器可以很容易地在'{%if ..%}'表達式中使用。 – 2014-09-04 19:16:54

相關問題