Я следовал учебник по этой ссылке, и это работает прекрасно:Доступ к очищенным данным формы с обратного вызова сигналов?
http://johnparsons.net/index.php/2013/06/28/creating-profiles-with-django-registration/
Моя единственная проблема, однако, эта строка из метода user_registered_callback:
profile.is_human = bool(request.POST["is_human"])
Поскольку это доступ запрос переменная напрямую (если вы удалите функцию bool).
Как это сделать, чтобы значение, которое я передаю своей модели, уже проверено ссылочной формой?
Я сделал это, но, к сожалению, проверка is_valid() всегда возвращает значение False, так как имя пользователя и электронная почта будет дублироваться на этом этапе. Я думаю, избыточно ли очищать переменные POST, так как мы не дойдем до этой части приложения, если они не пройдут первую проверку? – DigitalDouble
Вы вызываете 'full_clean()' не для целей проверки. Насколько я понимаю, в этом обратном вызове не требуется имя пользователя/адрес электронной почты. Вы просто хотите получить чистую ценность поля 'is_human'? Если да, то 'form.full_clean()' делает именно то, что вам нужно. Да, это уродливое решение, но я не вижу другого пути. – catavaran
Извините, что забыл упомянуть, что форма, которую я продюсирую, не является ModelForm. Кажется, что full_clean доступен только для модельных форм. – DigitalDouble