Hej, dostaję się do django, a to powoduje ból głowy. Próbuję uzyskać prostą zmienną GET. URL site.com/search/?q=search-termJak sprawdzić, czy request.GET var jest Brak?
Moim zdaniem:
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:
...
Zapytania takie jak: mysite.com/search/? (bez q) przechodzi przez pierwsze, jeśli poprawnie. Problem dotyczy zapytań takich jak mysite.com/search/?q=. Nie zostaną złapani przez , jeśli q nie jest żadną:
Tak więc krótka odpowiedź brzmi: Jak mogę sprawdzić q == ''? (Próbowałem już "", Brak itp., Bezskutecznie.)
Proste ** jeśli q ** zamiast ** jeśli q nie jest Brak (lub '') ** załatwiło sprawę. Ktoś ma wyjaśnienie tego? – Nacho
Ogólnie rzecz biorąc, musisz być bardzo ostrożny w używaniu operatora 'is' w Pythonie. Normalnie potrzebujesz testu równości ('=='), a nie testu tożsamości ('jest'). Sekwencja testów niezerowej długości "True". –