1

我已经让自己有点像泡菜了。我经常使用 django-registration,它似乎适用于大多数情况。但是,我想要求用户在访问任何其他页面之前建立他们的个人资料(例如:人口统计信息) 。

这就是我希望当前设置运行的方式:

  1. 访客填写注册表--(提交)-->
  2. 用户电子邮件验证--(链接创建活动用户)-->
  3. --(重定向到个人资料视图)--->
  4. 用户填写个人资料表格--(提交)-->
  5. 用户现在可以访问网站的其余部分

有推荐的方法吗?

4

1 回答 1

4

一种方法是使用你自己的装饰器,而不是你所有视图@profile_required中内置的 django 。login_required

@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):
    ...
于 2011-06-17T20:26:59.847 回答