2010-04-18 69 views
5

在視圖中,我試圖創建一個新用戶,然後登錄它們但導致成功創建一個新的URL。django創建用戶並將他們登錄到

def create(request): 

    if request.method == "POST": 

     # do user creation # 
     user.save() 

     auth_user = authenticate(username=user.username,password=user.password) 

     if auth_user is not None: 
      login(request, auth_user) 

      return HttpResponseRedirect('/user/account/') 

    return render_to_response('create_form.html') 

那麼,如何維護使用HttpResponseRedirect或驗證登錄的用戶在無關聯鑑於user對象?

+0

是否'如果auth_user不是None:'是neccessery ??? – suhailvs 2013-08-16 11:14:29

回答

6

會話中間件應該透明地處理它。如果你發現情況並非如此,那麼你應該朝這個方向尋找問題。

+0

因此,一旦我重定向到新頁面('/ user/account /'),我如何獲得'用戶'對象? HttpResponseRedirect是否包含「請求」對象?我認爲它沒有...... – Scott 2010-04-18 16:12:39

+0

你可以從'request'中得到它,因爲auth中間件從會話中拉出它並放在那裏。而所有'HttpResponseRedirect'都會將瀏覽器重定向到其他地方。新請求生成一個新的「請求」。 – 2010-04-18 16:29:26

+0

是的,你是對的。一旦我到達新的視圖,請求對象具有request.user,但我不明白爲什麼它不會將它傳遞給該視圖的模板? – Scott 2010-04-18 21:25:40

相關問題