0
我試圖在django中構建一個獨立於您所在頁面的登錄模塊。在Django中構建登錄模塊
我在包含頭文件的base.html模板(登錄模塊位於頭文件中)中定義了登錄模塊,所有其他頁面都擴展了此基本模板。
我的計劃是通過上下文字典傳遞錯誤,問題是我不知道如何使render()函數渲染用戶嘗試登錄的模板。
這是我的看法代碼:
def login(request):
context_dict = {}
if request.POST:
username = request.POST.get('login_username')
password = request.POST.get('login_password')
user = authenticate(username=username, password=password)
if not user:
context_dict['error'] = 'שם משתמש או סיסמא אין נכונים'
elif not user.is_active:
context_dict['error'] = 'חשבונך נחסם, אם הינך חושב שזאת טעות צור קשר עם מנהל בהקדם.'
else:
login(request,user)
redirect(request.META.get('HTTP_REFERER'))
render(request, ', context_dict)
如果你想回到前一個頁面,不使它。重定向將爲您的應用程序做得更好。在請求上放一個'next'參數並在登錄後檢查它。如果參數存在,則重定向到該URL。 –
我已經解決了登錄成功的情況,通過簡單的使用: 重定向(request.META.get('HTTP_REFERER')) 問題是我想呈現登錄錯誤,如果它是不成功的,需要使用上下文字典來呈現模板以存儲錯誤。 我不知道要渲染哪個模板,因爲我不知道用戶來自哪個模板,因爲您可以從任何模板登錄。 – davegri