【问题标题】:django - Accessible url pattern only for certain group of usersdjango - 仅适用于某些用户组的可访问 url 模式
【发布时间】:2014-09-09 11:46:47
【问题描述】:

有没有办法限制某些 django 用户组访问 url 模式? 例如,以/settings/ 开头的所有内容都应该仅供管理组访问。

或者也许可以创建一个新的装饰器,例如 @group("administration") 并将其添加到每个视图中,这些视图仅限于该组?

如果可能的话,我个人更喜欢第二种方式。

【问题讨论】:

    标签: python django django-views django-users


    【解决方案1】:

    django 提供了一个 user_passes_test 装饰器来做这件事。您可以将任何函数传递给它,如果函数返回 false 值,则不会显示视图。

    这个例子解释得更好:

    from django.contrib.auth.decorators import user_passes_test
    
    def email_check(user):
        return '@example.com' in user.email
    
    @user_passes_test(email_check)
    def my_view(request):
        ...
    

    在您的情况下,您想查看用户是否在特定组中:

    def in_admin_group(user):
       return 'administration' in user.groups
    

    【讨论】:

    • 另外,这个兼容@login_required
    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-11
      • 2018-02-11
      • 1970-01-01
      • 1970-01-01
      • 2020-09-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多