2014-09-04 4 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

+0

당신은 장고 템플릿에서'''''어떻게? – doniyor

+1

내장 된 방법이 없다고 생각하지만'{% if .. %}'표현식에서 사용할 수있는'| any' 사용자 정의 필터를 작성하는 것이 쉽습니다. –

관련 문제