Django:已认证的不同用户模型

亚历山大(Alexandre)

在我的项目中,我有两个名为学生教师的模型这两个模型是User的OneToOne字段我有3个应用程序:主页(索引页,常见问题,关于...),老师(老师的界面,管理她的课程,编辑个人资料...)和学生学生的界面,个人资料...)

我有一个登录表单(在应用程序主页中),我想用它来登录教师和学生,并在身份验证后重定向到正确的应用程序。这样做的最佳方法是什么?我认为要创建两个小组(教师和学生),并在注册表格后分配给正确的小组,然后在登录表格中检查该小组?

PS:学生可以创建一个帐户,但是对于老师来说,我们的团队可以创建帐户,因此我们没有老师的注册表

德国提高

如果与用户表的关系是OneToOne,则可以从user.student或user.teacher访问它,因此您可以执行此操作...

def login_view(request):
   if form.is_valid():
      # get user from form
      _user = form.get_user()
      user = authenticate(form.cleaned_data['username'], form.cleaned_data['password'])
      login(request, user)
      if hasattr(user, 'student'):
          # You'll return to student app
          return redirect('studen:home')
      # else
      return redirect('teacher:home')

编辑

decorators.py

...
from django.contrib.auth.decorators import user_passes_test
def group_required(*args):
    if args:
        def decorator(user):
            if user.is_staff or user.is_superuser:
                return True
            return user.is_authenticated() and user.groups.filter(name__in=args).exists()
    else:
        decorator = lambda x: x.is_authenticated()

    return user_passes_test(decorator)
...

并使用它...

...
@group_required('student')
def home_student(request):
   # some code

@group_required('teacher', 'student'):
def common_view_for_all(request):
   # some code
...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

yii不同用户角色的ACL

来自分类Dev

多种用户模型的狂欢认证

来自分类Dev

不同用户类型的不同布局

来自分类Dev

不同用户的动态样式

来自分类Dev

iOS:在不同用户之间共享数据

来自分类Dev

不同用户的访问控制-Laravel 5.2

来自分类Dev

不同用户的Drools规则

来自分类Dev

显示不同的模型管理员list_display和为不同用户组设置的字段

来自分类Dev

不同用户分组日期的差异。

来自分类Dev

查找不同用户的列总和的差异

来自分类Dev

检索由Django中不同用户创建的模型对象

来自分类Dev

Android中不同用户的不同视图

来自分类Dev

从不同系统访问或重置不同用户的已安装注册表配置单元的权限

来自分类Dev

yii不同用户角色的ACL

来自分类Dev

修改不同用户的_layout

来自分类Dev

Django-针对不同用户的自定义验证

来自分类Dev

不同用户的不同视图iOS

来自分类Dev

不同用户类型的不同布局

来自分类Dev

显示当天预订活动的不同用户

来自分类Dev

不同用户分组日期的差异。

来自分类Dev

不同用户的不同视图

来自分类Dev

查找不同用户的列总和的差异

来自分类Dev

来自不同用户的DPAPI ProtectData

来自分类Dev

显示不同用户类型的视图

来自分类Dev

不同用户级别的PHP

来自分类Dev

Django中模型与表单的关系,以及用户认证

来自分类Dev

Laravel,不同用户价格不同

来自分类Dev

如何在django框架中将不同用户的多条推文嵌入到HTML中?

来自分类Dev

不同用户的单独活动