Проверьте тип запроса в Джанго - PullRequest
9 голосов
/ 30 мая 2010

Хотя рекомендуется использовать следующую конструкцию, чтобы проверить, является ли запрос POST,

if request.method == 'POST':
    pass

Вполне вероятно, что люди найдут

if request.POST:
    pass

чтобы быть более элегантным и лаконичным.

Есть ли причины не использовать его, кроме личных предпочтений?

1 Ответ

14 голосов
/ 30 мая 2010

В документации ясно об этом:

Возможно, что запрос может поступить через POST с пустым словарем POST - если, скажем, форма запрашивается с помощью метода POST HTTP, но не включает данные формы. Следовательно, вы не должны использовать if request.POST для проверки использования метода POST; вместо этого используйте if request.method == "POST" (см. выше).

>>> # assume an empty POST request would be treated as a dict
>>> bool({})
False
>>> # it would be a POST request, but request.POST would evaluate to False
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...