2011-06-17 39 views
1

我已經把自己變成了一個泡菜。我經常使用django註冊,它似乎適用於大多數情況。但是,我想要求用戶在訪問任何其他頁面之前建立其個人資料(例如:人口統計信息)Django身份驗證問題 - 我如何強制活動用戶先設置配置文件?

這就是我想要的當前設置來運行:

  1. 遊客填寫登記表 - (提交)--->
  2. 用戶的電子郵件驗證 - (link創建活動用戶)--->
  3. - (重定向到輪廓視圖)--->
  4. 用戶填寫簡檔形式 - (提交) - >
  5. 用戶現在可以訪問網站

其餘有沒有做到這一點,建議這樣做?

回答

4

其中一種方法是使用您自己的@profile_required修飾器而不是您所有視圖中的login_required內置的django。

@login_required 
def profile_required(func,request,*args,**kwargs): 
    has_profile = request.user.profile_set.count() 
    if not has_profile: 
     return redirect('create_profile') 
    return func(request,*args,**kwargs) 

然後在每次查看您想有個人資料瀏覽用戶,只需:

@profile_required 
def my_awesome_view(request): 
    ... 
+0

謝謝!我從來沒有使用profile_required裝飾 – Matt

+0

哦,你實際上建立了我一個裝飾。謝謝!!! – Matt