首次登录时打开页面
问题描述:
我希望用户必须在首次登录后填写表单。对于我已经尝试的信号:首次登录时打开页面
# -*- 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”被调用,但它不会被转发到适当的页面。 有没有办法在之后调用函数我可以从中转发到另一个站点。
答
你可以,也许应该使用中间件为
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
请邮寄其中u提到的网址,将倒车时first_login调用代码,以及first_login代码也.. – 2012-08-12 10:13:50