Почему FieldDoesNotExist не работает с POST.get ()? - PullRequest
1 голос
/ 10 января 2020

Я хочу поймать исключение, если форма POST не содержит значения для поля 'myfield':

    try:
        set_var = request.POST.get('myfield')
    except FieldDoesNotExist:
        raise FieldDoesNotExist("Your field is not here.")

Почему это не вызывает исключение?

1 Ответ

1 голос
/ 10 января 2020

Метод .get(..) [Django -doc] в случае, если ключ не существует, вернет значение, переданное параметру default=…, и в если вы сами не передали значение для default=…, default равно None.

Возможно, вы захотите индекс request.POST, тогда вы можете поймать MultiValueDictKeyError исключение:

from django.utils.datastructures import MultiValueDictKeyError

try:
    set_var = request.POST<b>['myfield']</b>
except <b>MultiValueDictKeyError</b>:
    raise FieldDoesNotExist('Your field is not here.')
...