如何在 Django 中按应用程序处理用户和角色

Posted

技术标签:

【中文标题】如何在 Django 中按应用程序处理用户和角色【英文标题】:How to handle users and roles by app in Django 【发布时间】:2018-09-09 15:19:08 【问题描述】:

大家好,让我问一些关于管理界面的问题,以及如何通过应用处理我的用户。

很抱歉,我首先是nooby。所以,我需要创建一个新的应用程序来进行一些测验,所以我需要用户,我的应用程序中的这些用户应该有不同的角色,比如学生或教师等等。

问题是我不知道管理 Django 界面是否仅用于 DB 模型,或者我是否可以将其用作我的应用程序中的安全层。

否则,我应该在我的应用模型中为用户和角色创建一组表,然后处理模型中的所有内容,因为管理员只是数据库访问权限。你能告诉我什么?非常感谢。

【问题讨论】:

Django group permissions for whole app的可能重复 【参考方案1】:

来自 Django 关于 Django admin 的文档 - Link

以模型为中心的界面,受信任的用户可以在其中管理您网站上的内容。

Django 带有user model,您可以将其扩展为代表教师和学生,如 django 文档中所述here,您将创建ModelAdmins and register your models。除此之外,您还可以通过管理系统轻松管理您的用户,示例代码:

models.py

from django.contrib.auth.models import User
from django.db import models


class Teacher(models.Model):
    user = models.ForeignKey(User, related_name='teacher')


class Student(models.Model):
    user = models.ForeignKey(User, related_name='student')

admin.py

from django.contrib import admin

from .models import Teacher, Student


admin.site.register(Teacher)
admin.site.register(Student)

至于安全性,不清楚您所说的“将其用作我的应用程序中的安全层”是什么意思,如果您详细说明,人们可以更好地帮助您。一般可以在djangohere了解安全性。

【讨论】:

以上是关于如何在 Django 中按应用程序处理用户和角色的主要内容,如果未能解决你的问题,请参考以下文章

如何在 django 中按日期范围过滤记录?

如何将 django 端点限制为本地网络?

如何使用 Django 创建三联表

Django,在模型外键中按组过滤用户

Struts2 授权

Django 上的用户角色模式