이봐, 나는 장고에 들어가고있어. 그리고 나에게 두통이 생기고있다. 간단한 GET 변수를 얻으려고합니다.request.GET var가 None인지 확인하는 방법?
def search(request):
if request.method == 'GET' and 'q' in request.GET:
q = request.GET.get('q', None)
if q is not None:
results = Task.objects.filter(
Q(title__contains=q)
|
Q(description__contains=q),
)
...return...
else:
...
else:
...
검색 쿼리와 같은 : mysite.com/search/ URL은
내보기는 site.com/search/?q=search-term입니까? (q 제외)은 첫 번째를 올바르게 통과합니다.
mysite.com/search/?q=과 같은 검색어에 문제가 있습니다. q가 None이 아닌 경우 그들은 에 걸리지 않습니다.
따라서 q == '를 어떻게 확인할 수 있습니까? (나는 이미 '', 아무도 등을 시도해 보지 않았다.)
q가 None (또는 '')이 아닌 ** ** 대신 ** ** ** 단순한 ** 트릭을 수행했습니다. 누구든지 이에 대한 설명이 있습니까? – Nacho
일반적으로 파이썬에서'is' 연산자를 사용하는 것에 대해 매우 신중해야합니다. 일반적으로 동일성 테스트 ('==')가 필요하며 신원 확인 테스트 ('is')가 필요치 않습니다. 길이가 0이 아닌 시퀀스가 '참'입니다. –