Сначала проверьте, содержит ли диктант request.GET
параметр с именем q
. Вы уже делаете это правильно:
if request.method == 'GET' and 'q' in request.GET:
Далее, проверьте, является ли значение q
либо None
, либо пустой строкой. Для этого вы можете написать это:
q = request.GET['q']
if q is not None and q != '':
# Do processing here
Обратите внимание, что нет необходимости писать request.GET.get('q', None)
. Мы уже проверили, что внутри ключа request.GET
есть ключ 'q'
, поэтому мы можем получить значение напрямую. Единственный раз, когда вы должны использовать метод get
, это если вы не уверены, что у dict есть определенный ключ и хотите избежать вызова исключения KeyError.
Однако есть еще лучшее решение, основанное на следующих фактах:
- Значение
None
оценивается как False
- Пустая строка
''
также оценивается как False
- Любая непустая строка оценивается как
True
.
Итак, теперь вы можете написать:
q = request.GET['q']
if q:
# Do processing here
См. Другие ресурсы для получения более подробной информации: