注册后的用户流程

时间:2011-06-03 20:11:45

标签: python django

我有以下用户流程:

1)用户注册。

2)用户有一个'getting_started'页面,他填写了一些基本信息并添加了一张图片。

3)用户激活他的电子邮件并登录

用户在入门页面上填写完信息后,如果他回到页面getting_started/,我希望用户被重定向到他的home/。最简单的方法是什么? (作为参考,类似于LinkedIn或Facebook注册流程)。

我想到的方法是在用户填写getting_started页面后设置全局变量getting_started = 1,并在getting_started页面上执行 -

if getting_started: 
    redirect to home/ 
else:
    ...(normal getting started view)...

1 个答案:

答案 0 :(得分:4)

是否只是要重定向的getting_started视图/页面?不要考虑全局变量,从数据库字段的角度思考!

用户注册后,他们将成为注册用户(如果您使用的是djangos auth app),他们将在数据库中有一个条目。因此,您只需检查用户是否已注册:如果是,请重定向,否则允许他们继续注册。

你可以简单地检查一下get_started视图的开头,看看用户是否已经注册

from django.http import HttpResponseRedirect

def getting_started_view(request):
    if request.user.is_authenticated():
        return HttpResponseRedirect(reverse('home_view'))

home_view 位于您的urls.py中:

url("...","someapp.views.viewname", name="home_view"),
...

(或者你可以硬编码重定向)

如果您正在寻找更复杂的重定向(可能需要重定向到主页的大量页面),您应该考虑编写一些中间件。这将允许您拦截进入的每个请求,查看它是否属于某个页面,并重定向。

https://docs.djangoproject.com/en/dev/topics/http/middleware/?from=olddocs