我已经让自己有点像泡菜了。我经常使用 django-registration,它似乎适用于大多数情况。但是,我想要求用户在访问任何其他页面之前建立他们的个人资料(例如:人口统计信息) 。
这就是我希望当前设置运行的方式:
- 访客填写注册表--(提交)-->
- 用户电子邮件验证--(链接创建活动用户)-->
- --(重定向到个人资料视图)--->
- 用户填写个人资料表格--(提交)-->
- 用户现在可以访问网站的其余部分
有推荐的方法吗?
我已经让自己有点像泡菜了。我经常使用 django-registration,它似乎适用于大多数情况。但是,我想要求用户在访问任何其他页面之前建立他们的个人资料(例如:人口统计信息) 。
这就是我希望当前设置运行的方式:
有推荐的方法吗?
一种方法是使用你自己的装饰器,而不是你所有视图@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):
...