【问题标题】:How to restrict my students to don't access teacher area in django? [closed]如何限制我的学生不访问 django 中的教师区域? [关闭]
【发布时间】:2019-12-11 19:08:29
【问题描述】:

我正在创建一个网站,其中有两种类型的用户,学生和教师。我创建了一个用于身份验证的注册和登录页面。现在默认情况下,所有注册的用户都是学生,可以访问视频,也可以访问教师区域(我在此处完成了编码)。

如果有人想成为那里的老师,那么他们必须提交他们的文件。验证后,他们可以访问教师页面。问题是我不知道如何从管理面板手动授权这些用户,以便他们可以访问特定(教师)页面?

我用谷歌搜索了很多,但不明白如何做这件事。我的网站已准备就绪,但我不知道如何限制所有用户访问教师页面,以及在他们的文件验证后,如何授予访问教师页面的权限。

【问题讨论】:

    标签: python django django-models django-forms django-permissions


    【解决方案1】:

    您可以创建自己的视图装饰器来检查用户是否是组的成员

    from django.contrib.auth.decorators import user_passes_test
    
    def is_teacher(user):
        return user.groups.filter(name='Teacher').exists()
    
    @user_passes_test(is_teacher)
    def my_view(request)
        ...
    

    Docs for user_passes_test

    那么您所要做的就是创建一个名为“教师”的组并将教师添加到该组

    【讨论】:

    • 好的,谢谢你的回答,我现在就去做。如果它对我有用,我会回复。
    • 收到错误“用户对象没有属性‘组’”
    • 这是groups 不是group
    • 是的,现在可以正常工作了
    【解决方案2】:

    尝试使用内置用户模型中的 is_staff 字段。对于教师,将其设置为 true,对于儿童,将其设置为 false。在此基础上决定赋予每个人的权利。希望对您有所帮助。

    【讨论】:

    • 您能详细说明一下吗?
    猜你喜欢
    • 1970-01-01
    • 2017-01-21
    • 1970-01-01
    • 1970-01-01
    • 2021-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多