Wie überprüft man, ob request.GET var ist Kein?

Hey, ich bin immer in django und das ist mir immer Kopfschmerzen.
Ich versuche, einen einfachen GET-variable. URL site.com/search/?q=search-term

Meine Ansicht ist:

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:
    ...

Suchanfragen wie: mysite.com/search/? (ohne q) wird durch den ersten, wenn richtig.

Das problem ist, dass Abfragen wie mysite.com/search/?q=. Sie nicht erwischt werden, indem , wenn q ist nicht Ohne:

So, die kurze Antwort wäre, Wie kann ich überprüfen, q == "? (Ich habe es bereits versucht ", None, etc, ohne Erfolg.)

Kommentar zu dem Problem - Öffnen
Ein einfaches wenn q statt , falls q nicht None ist, (oder"") hat den trick. Hat jemand dafür eine Erklärung? Kommentarautor: Nacho
Im Allgemeinen müssen Sie sehr vorsichtig sein, über die Verwendung des - operator in Python. Normalerweise will man eine Gleichheit testen (==), nicht eine Identität-test (). Eine Folge von nicht-null-Länge-tests True. Kommentarautor: Ned Deily

InformationsquelleAutor der Frage Nacho | 2010-03-11

Schreibe einen Kommentar