2011-04-21 51 views
0

我有一個/頁面顯示註冊新用戶的表單。 當新用戶註冊時,它將重定向到/儀表板。關於重定向的Django問題

但是,當經過身份驗證的用戶轉到/時,應該會看到/ dashboard頁面。 的問題是:我應該把這樣的事情在家裏()視圖:

if request.user.is_authenticated(): 
    return HttpResponseRedirect("/dashboard") 

或者這是一個醜陋方法,我應該從我家(返回不同的模板)依靠用戶的身份驗證狀態?在這種情況下,我如何自定義我的網址以顯示/儀表板而不是/?

+2

重定向有什麼問題?什麼讓你稱之爲醜陋? – 2011-04-21 20:43:30

+0

不知道。它感覺我很糟糕重定向每個記錄的用戶從/到/儀表板。你不認爲?也許最好使用一個視圖並返回兩個不同的模板。但在這種情況下,URL中有寫/儀表板的方法嗎? – 2011-04-21 20:45:20

+0

@Fred柯林斯:你見過網站的工作方式嗎?在表單填寫完成後,重定向是**必不可少的。爲什麼不在這裏? – 2011-04-21 20:46:21

回答

1

重定向方法絕對沒問題。不確定你的意思是醜陋的。重定向也應該照顧你的URL問題。

0

如果我正確理解你,你有一個「儀表板」,只有經過驗證的用戶才能使用,所以如果沒有登錄用戶試圖進入它,他應該被重定向到註冊表單。對?

您是否考慮過使用中間件?這樣的中間件可以檢查用戶是否登錄,如果不是 - 返回註冊表單視圖,否則繼續處理請求,並返回主視圖。請閱讀process_request和process_view here

+0

是的,你理解正確。事實上,現在我使用'@ login_required'裝飾器,並且一切都很好。順便說一句,謝謝你的鏈接。 – 2011-04-23 12:28:13