【问题标题】:Django authentication problem - how can I force active users to setup a profile first?Django 身份验证问题 - 如何强制活跃用户首先设置配置文件?
【发布时间】:2011-09-17 11:44:45
【问题描述】:

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

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

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

有推荐的方法吗?

【问题讨论】:

    标签: django forms require django-registration


    【解决方案1】:

    其中一种方法是在所有视图上使用您自己的 @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):
        ...
    

    【讨论】:

      猜你喜欢
      • 2018-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-22
      • 2021-05-30
      • 2013-10-27
      • 2017-08-12
      相关资源
      最近更新 更多