我想使用Django的內置登錄視圖:django.contrib.auth.views.login
內置視圖登錄:錯誤處理和好的做法
這種觀點做了偉大的工作。它會檢測登錄是否錯誤以及帳戶何時尚未驗證,但錯誤消息非常短。
對於未激活帳戶:
此帳戶處於非活動狀態。
您是否知道更詳細的正確方法?
我更喜歡這樣的:
此帳戶已停用。一封電子郵件通過激活鏈接發送給您。
其實,我自己做的登錄名和我傳遞給模板的錯誤上下文:
context = {}
if request.method == 'POST':
email = request.POST['email']
password = request.POST['password']
user = authenticate(username=email, password=password)
if user is not None:
if user.is_active:
login_django(request, user)
return redirect('consumer.views.dashboard')
else:
context = {'error': 'disable_account'}
else:
context = {'error': 'invalid_account'}
return render(request, 'login.html', context)
,並在模板中,我可以檢查什麼樣的錯誤,就是它了。
表單解決方案很好,但我們可以做得更好嗎?這是一個很長的信息,我認爲它的位置在模板中,不是嗎?謝謝 –
嗯,我認爲消息的大小不應該決定它應該屬於代碼還是模板。這更多的是[封裝](http://en.wikipedia.org/wiki/Encapsulation_(object-oriented_programming)):在這種情況下,form.clean測試用戶是否活躍,因此,將消息在窗體上。 –