首次登录时打开页面

问题描述:

我希望用户必须在首次登录后填写表单。对于我已经尝试的信号:首次登录时打开页面

# -*- coding: utf-8 -*- 
from django.contrib.auth.signals import user_logged_in 
from django.http import HttpResponseRedirect 
from django.core.urlresolvers import reverse 

[...] 

def umleiten(sender, user, request, **kwargs): 
    print reverse("first_login") 
    """Check if a user logged on for the first time.""" 
    return HttpResponseRedirect(reverse("first_login")) 

user_logged_in.connect(umleiten) 

函数“umleiten”被调用,但它不会被转发到适当的页面。 有没有办法在之后调用函数我可以从中转发到另一个站点。

+0

请邮寄其中u提到的网址,将倒车时first_login调用代码,以及first_login代码也.. – 2012-08-12 10:13:50

你可以,也许应该使用中间件为

class FirstLoginCheckMiddleware(object): 
    def process_request(self, request): 

     is_form_page = request.path in (
      settings.FORM_PAGE 
     ) 

     if (not is_form_page) and request.user.is_authenticated() and (not request.user.profile.filled_out_the_form): 
      return HttpResponseRedirect(settings.FORM_PAGE) 
     return None 

在哪里,例如你延长用户使用具有一旦用户做了什么,你希望他们待办事项它获取查了BooleanField对象:

class UserProfile(models.Model): 
    filled_out_the_form = field.BooleanField(default=False) 
    # ... 
+0

谢谢! 我必须机会 is_form_page = request.path in(settings.FORM_PAGE) to is_form_page = settings.FIRST_LOGIN_FORM_PAGE in(request.path) – senden9 2012-08-12 12:59:37