首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >登录学生模型django

问登录学生模型django
EN

Stack Overflow用户
提问于 2018-07-31 14:28:37
回答 1查看 1K关注 0票数 0

我正在学习django框架,我陷入了一个教师/学生问题,我有一个学生模型,其中我有学生用户名和密码,而教师帐户是直接从管理站点用户模型创建的,我使用django的内置登录系统成功地为教师创建了登录。现在我想让学生登录,他们的用户名/密码存储在学生models.In中--我的情况下,学生帐户(用户名和密码)是由他们的老师创建的,并且存储在学生model.So中,学生只需要登录,而我只有一个登录表单(教师和学生)。我如何通过学生模型的检查来登录学生,我已经搜索过了,但这让我对此有了一些帮助。

下面是从管理站点创建的教师登录代码:

代码语言:javascript
复制
       class loginform(View):             
            template_name='IEL/Login.html'
            form_class=UserForm

            def get(self,request):     # if the request is get then only view the function
                form=self.form_class(None)
                return render(request, self.template_name, {'form': form})

            def post(self,request):
                form=self.form_class(request.POST)

                if form.is_valid():
                    #user = form.save(commit=False)  # it doesnot save in database, it is used to et clean the values
                    # clean data
                    username = form.cleaned_data['username']
                    password = form.cleaned_data['password']

                    # authenticate user:
                    user = authenticate(username=username, password=password)

                    if user is not None:
                        login(request, user)
                        return redirect('IEL:file')
                else:
                    msg = 'Errors: %s' % form.errors.as_text()
                    return HttpResponse(msg, status=400)

                return render(request, self.template_name, {'form': form})  
EN

回答 1

Stack Overflow用户

发布于 2018-08-01 19:11:04

这样做的最好方法是通过一对一的关系将学生和教师连接到默认的用户模型(因为教师和学生最终都是用户,因此对两者都有不同的身份验证机制是没有意义的)。

这样,您就可以使用django默认登录系统。

您可以创建两个组。一个给学生,一个给老师。

当从管理面板创建教师时,您可以将新教师添加到教师组中。

如果您这样做,您甚至不需要存储学生的用户名和密码

您可以通过设置装饰器来限制学生对某些urls的访问,以便只允许属于教师组的用户访问这些视图。

这可能看起来很复杂,实际上,这比创建您自己的身份验证系统更容易,也更安全。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51615795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档