Ошибка, о которой вы сообщили, возникает при поиске в словаре для ключа, которого нет в этом словаре - в значительной степени именно то, что говорит вам ошибка.
Поскольку все, что мне нужно, - это опубликованный вами код, я думаю, что по какой-то причине слово "пол" на самом деле отсутствует в словаре request.POST. Вам нужно выяснить, почему.
Как правило, при работе со словарями лучше всего сначала проверить наличие ключа или использовать метод dict.get
, чтобы получить запасной вариант:
# Check for dictionary key
if request.POST.has_key('gender'):
gender = request.POST['gender']
# or Provide fallback
gender = request.POST.get('gender', 'male') # if gender isn't present, 'male' will be returned