Должен ли я написать логику аутентификации в моих формах для обработки входа пользователя?
Например, я хотел бы отображать сообщения пользователю, если учетная запись еще не активирована. Для этого я сейчас делаю что-то вроде этого (ужасно, я знаю):
def login(request):
email = request.POST.get('email')
password = request.POST.get('password')
user = auth.authenticate(email=email, password=password)
if user is not None:
if user.is_active:
auth.login(request, user)
# etc
else:
# send "not activated message"
else:
# send "not found message"
Это намного страшнее, чем в реализации, но я спасу интернет от моей первоначальной попытки обработки форм в Django, прежде чем я узнаю API форм.
В любом случае важно иметь возможность сообщить пользователям, что их учетные записи еще не активны, если они попытаются войти в систему, чтобы они могли хотя бы знать, что делать дальше. Похоже, что API форм имеет наибольшее значение: я мог бы выполнить простую проверку адреса электронной почты и пароля, а затем выполнить реальную проверку логики активации учетной записи в методе clean()
в моей форме и отправить им сообщение, если возникнет проблема.
Есть ли недостатки в этом?
PS: я знаю, что Django поставляется с видом входа в систему и целыми девятью ярдами, но у меня есть конкретные потребности проекта, в которых мне нужно немного подправить вещи с аутентификацией и т. Д., Поэтому, пожалуйста, не предлагайте включенное представление, "я не могу на этот раз.