首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为django中的不同用户类型分别设置'admin'接口

为 Django 中的不同用户类型分别设置 'admin' 接口,可以通过以下步骤实现:

  1. 创建自定义的管理站点:

在 Django 项目的 settings.py 文件中,创建一个新的管理站点,并将其与默认的管理站点分开。这将允许您为不同的用户类型分别设置 'admin' 接口。

代码语言:python
代码运行次数:0
复制
from django.contrib import admin
from django.contrib.admin.apps import AdminConfig

class CustomAdminConfig(AdminConfig):
    default_site = 'myadmin.CustomAdminSite'

admin.site = CustomAdminConfig()
  1. 创建自定义的管理站点类:

在 myadmin 模块中创建一个新的 CustomAdminSite 类,并继承自 django.contrib.admin.sites.AdminSite。在该类中,可以根据用户类型自定义 'admin' 接口。

代码语言:python
代码运行次数:0
复制
from django.contrib.admin.sites import AdminSite

class CustomAdminSite(AdminSite):
    def has_permission(self, request):
        # 在这里添加您的权限检查逻辑
        return request.user.is_staff

    def index(self, request, extra_context=None):
        # 在这里添加您的自定义模板上下文
        return super().index(request, extra_context)

    def get_urls(self):
        # 在这里添加您的自定义 URL 配置
        return super().get_urls()
  1. 在 settings.py 中注册自定义的管理站点:

将您的自定义管理站点添加到 Django 项目的 INSTALLED_APPS 设置中。

代码语言:python
代码运行次数:0
复制
INSTALLED_APPS = [
    # ...
    'myadmin',
    # ...
]
  1. 使用自定义的管理站点:

现在,您可以在 Django 项目中使用自定义的管理站点,而不是默认的管理站点。例如,您可以在视图中使用自定义的管理站点来为不同用户类型提供不同的 'admin' 接口。

代码语言:python
代码运行次数:0
复制
from django.shortcuts import render
from myadmin.CustomAdminSite import CustomAdminSite

def custom_admin(request):
    custom_site = CustomAdminSite()
    context = {'site_header': custom_site.site_header, 'site_title': custom_site.site_title}
    return render(request, 'custom_admin.html', context)

通过以上步骤,您可以为 Django 中的不同用户类型分别设置 'admin' 接口。您可以根据自己的需求自定义管理站点的行为,例如添加权限检查、自定义模板上下文、添加自定义 URL 配置等。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C#.NET 启动进程时所使用 UseShellExecute 设置 true 和 false 分别代表什么意思?

在 .NET 创建进程时,可以传入 ProcessStartInfo 类一个新实例。在此类型,有一个 UseShellExecute 属性。...本文介绍 UseShellExecute 属性作用,设为 true 和 false 时,分别有哪些进程启动行为上差异。...---- 本质差异 Process.Start 本质上是启动一个新子进程,不过这个属性不同,使得启动进程时候会调用不同 Windows 函数。...那你自然也就了解此属性设置 true 和 false 区别了。...如果有以下需求,那么建议设置此值 false: 需要明确执行一个已知程序 需要重定向输入和输出 如果你有以下需求,那么建议设置此值 true 或者保持默认: 需要打开文档、媒体、网页文件等 需要打开

99220
  • Django3.2边学边记—Adimn站点管理

    准备工作 创建管理员用户名和密码:  1 python manage.py createsuperuser   根据提示创建用户名 密码 在admin.py中注册模型类 1234567 from django.contrib...类可以控制不同模型在Admin界面展示方式,主要包括在列表页展示方式、添加修改页展示方式 上文中展示了TestAdmin类一种注册方法,还有一种方法,就是使用装饰器注册,如下: 123 @admin.register...(Test)class TestAdmin(admin.ModelAdmin):    pass 页大小 每页显示多少条数据,默认为每页显示100条数据,设置20 12 class TestAdmin...例如,如果 search_fields 设置 ['first_name', 'last_name'],用户搜索 john lennon',Django 会做相当于这个 SQL WHERE 子句。...我理解就是分组整体匹配(Django3.2新增),例如,如果用户搜索 "john winston" 或 'john winston',Django 会做相当于这个 SQL  WHERE 子句: 1

    1.3K30

    一篇文章带你梳理Python Django正确学习方法!

    02 模版(Template) 模版在Django是显示数据地方,通常HTML格式,在模版Django处理逻辑要写在{% %},而要显示变量要写在{{ }}。...,里面封装了模型类通用接口。...分别表示最大长度、是否空、显示名称。def__unicode__提供了装箱后默认显示,如果没有设置此函数,默认显示object类型。class Meta规定了模型默认排序字段。...同时Django也提供了外键设置接口,此处以book例 class Book(models.Model): title = models.CharField(max_length = 100...04 集成子框架 在django.contrib包中有多种附加功能包,目前只了解了admin和auth两种感觉功能很强大,美中不足admin界面略丑。

    1.5K60

    Python3+ Django3:自动生成Swagger接口文档

    在实际工作,经常会遇到:“前端抱怨后端给接口文档与实际情况不一致。后端又觉得编写及维护接口文档会耗费不少精力,经常来不及更新”。...3)Swagger可在不同平台上从代码注释自动生成 4)Swagger社区活跃,里面有许多强悍贡献者 3....django-admin startapp api 需要注意是,本篇文章示例,是基于Python3及Django当前最新库来进行。...在django 3.0已经不支持该库了,取而代之是全新第三方drf-yasg库。...4、Swagger除了可以即时生成接口文档以外,还可以用于在线做一些接口功能测试,如下所示。 ? ? 5、在Swagger还可以查看到在model定义各字段类型及参数说明。 ?

    15.4K32

    Django教程第1章 | 快速入门 | 基础知识

    MVC 架构: Django 遵循 MVC(模型-视图-控制器)软件设计模式,但它使用了稍微不同术语。...在 Django ,模型(Model)表示数据结构,视图(View)负责呈现用户界面,而控制器(Controller)职责被称为视图(View)。...简易图: 用户操作流程图: MTV 模型 Django MTV 模式本质上和 MVC 是一样,也是为了各组件间保持松耦合关系,只是定义上有些许不同Django MTV 分别是指: M 表示模型...激活管理工具 通常我们在生成项目时会在 urls.py 自动设置好,我们只需去掉注释即可。...Tag 以 Contact 外部键。一个 Contact 可以对应多个 Tag。 我们还可以看到许多在之前没有见过属性类型,比如 IntegerField 用于存储整数。

    24810

    学习版pytest内核测试平台开发万字长文入门篇

    表格数据通过:data绑定到了tableData对象,调用后端接口后,从响应拿数据填充: ? 新增用户弹窗入口也是放在这个文件: ?...dialogFormVisible默认为False不可见,点击新增按钮后,会设置True。新建views/console/addUser.vue文件编写用户弹窗代码: ?...由于新增用户用户列表展示字段不一样,所以给同一个User模型创建了2个序列化器。图中标红了代码是把intid值转化为了str类型,方便前端处理。...,默认超管用户名为admin,密码qa123456,登录成功后可以尝试走一遍功能检查下: 点击左上角logo,不会出现跳转到空白页。...新增用户分别创建管理员、开发、测试3个角色用户。 使用新用户登录,管理员用户能登录成功,开发和测试由于没有后台管理权限,点击登录接口后会提示“无菜单权限”。

    4.9K30

    Django(1)初识Django「建议收藏」

    Django采用了MTV框架模式,即模型Model、模板Template和视图(Views),三者之间各自负责不同职责。...框架内置数据库接口可实现复杂数据操作。...系统:完善缓存系统,可支持多种缓存方式 Auth认证系统:提供用户认证、权限设置用户组功能,功能扩展性强 国际化:内置国际化系统,方便开发出多种语言网站 Admin后台系统:内置Admin后台管理系统...功能导入由模块Django.urls实现,如from Django.urls import include,path,re_path Admin后台系统:支持主流移动设备并新增属性ModelAdmin.autocomplete_fields...()`,可以处理各种非法页面参数,防止异常 Templates(模板):提高Engine.get_default()在第三方模块用途 Vaildators(验证器):不允许CharField及其子类表单输入

    2.8K20

    Django 1.10文文档-第一个应用Part2-模型和管理站点

    当你编辑mysite/settings.py时,请设置TIME_ZONE你自己时区。 INSTALLED_APPSDjango实例中所有Django应用名称。...import timezone分别引用Python 标准datetime 模块和Django django.utils.timezone时区相关工具。...Django解决了网站管理员创建统一界面以编辑内容问题。管理网站不打算供网站访问者使用。 创建管理用户 首先,我们需要创建一个可以登录到管理网站用户。...进入admin站点 使用在上一步创建超级用户帐户登录。您应该会看到Django管理员索引页面: ? 您应该会看到几种类型可编辑内容:组和用户。...这里需要注意是: 这个表单是根据Question模型文件自动生成; 模型不同类型字段(DateTimeField、CharField)会对应相应HTML输入控件。

    2.3K60

    Django Admin后台管理:高效开发与实践

    认证后端:Django允许定义多个认证后端,用于验证用户凭据。 权限和授权:Django权限系统基于对象,允许每个对象实例设置权限。...3.3 自定义用户模型 Django允许开发者自定义用户模型以满足特定需求。 替换默认用户模型:在settings.py设置AUTH_USER_MODEL指向自定义用户模型。...3.4 高级权限控制 对象权限:Django允许模型每个实例设置权限,这可以通过编写自定义权限类来实现。...它提供了丰富功能,包括序列化、视图、认证、权限等。 API开发:通过DRF,你可以快速构建出符合RESTful设计原则API,移动应用、前端框架或其他服务提供数据接口。...Admin actions: 添加批量禁用和批量启用用户、批量删除社区和帖子等Admin actions,可以在admin.py文件相应模型添加自定义Admin actions。

    12110

    Django学习

    Django基本命令startproject  创建一个Django项目    django-admin startproject 项目名startapp      创建一个Django应用    python...views.py-(应用路由)-hello_world函数--浏览器一、模型层简介1 模型层是什么位于Django视图层和数据库之间Python 对象和数据可之间转换屏蔽不同数据库之间差异开发者更加专注于业务逻辑开发提供很多便捷工具有助开发...是什么Django后台管理工具读取定义模型元数据,提供强大管理使用页面2 为什么需要学Django Admin模块Django Shell 新增文章太复杂了管理页面是基础设施重要部分认证用户、...显示管理模型、验证输入功能等3 Django Admin摸得使用创建管理员用户python manage.py createsuperuser登录页面进行管理五、实现博客数据返回页面(代码)*****...文章/blog/detail/2 =>博客唯一ID2文章/blog/detail/3 =>博客唯一ID3文章1.2完善视图函数逻辑实现上下篇文章跳转实现分页功能/blog/index?

    67920

    Django3.2边学边记—Adimn站点管理

    准备工作 创建管理员用户名和密码:  1 python manage.py createsuperuser   根据提示创建用户名 密码 在admin.py中注册模型类 1234567 from django.contrib...类可以控制不同模型在Admin界面展示方式,主要包括在列表页展示方式、添加修改页展示方式 上文中展示了TestAdmin类一种注册方法,还有一种方法,就是使用装饰器注册,如下: 123 @admin.register...(Test)class TestAdmin(admin.ModelAdmin):    pass 页大小 每页显示多少条数据,默认为每页显示100条数据,设置20 12 class TestAdmin...例如,如果 search_fields 设置 ['first_name', 'last_name'],用户搜索 john lennon',Django 会做相当于这个 SQL WHERE 子句。...我理解就是分组整体匹配(Django3.2新增),例如,如果用户搜索 "john winston" 或 'john winston',Django 会做相当于这个 SQL  WHERE 子句: 1

    1.2K00

    测试利器 | 一款开源Diffy自动化测试框架:超详细实战教程讲解

    Diffy工作原理 在整个测试开展过程,Diffy需要部署三个版本系统,以实现它噪声过滤和对比功能,它们分别是: 候选版本(candidate):该版本待测版本,有着最新待测代码。...则表示这三种类型请求仍能正常代理发送 excludeHttpHeadersComparison=false 是否排除header差异,不同服务器,cookie,nginx版本可能有所差异,设置true...部署secondary(稳定版本副本) 同上一步操作一样,激活虚拟环境,启动Django服务,端口设置8002,此服务作为稳定版副本服务,命令如下: source env/bin/activate cd...: diffy代理接口8880,后续测试所以请求都应从这个端口访问 查看请求:通过http://localhost:8881/admin (admin.port)可以查看请求状况 查看差异:通过http...当然,实际业务,Content-length、updated_at这类型差异可被忽略掉。 通过结合接口返回详情功能,可查看到稳定版本和测试版本返回响应差异处: ? 7.

    1.7K20

    一款开源Diffy自动化对比测试框架:超详细实战讲解

    Diffy工作原理 在整个测试开展过程,Diffy需要部署三个版本系统,以实现它噪声过滤和对比功能,它们分别是: 候选版本(candidate):该版本待测版本,有着最新待测代码。...则表示这三种类型请求仍能正常代理发送 excludeHttpHeadersComparison=false 是否排除header差异,不同服务器,cookie,nginx版本可能有所差异,设置true...部署secondary(稳定版本副本) 同上一步操作一样,激活虚拟环境,启动Django服务,端口设置8002,此服务作为稳定版副本服务,命令如下: source env/bin/activate cd...diffy代理接口8880,后续测试所以请求都应从这个端口访问 查看请求:通过http://localhost:8881/admin (admin.port)可以查看请求状况 查看差异:通过http...当然,实际业务,Content-length、updated_at这类型差异可被忽略掉。 通过结合接口返回详情功能,可查看到稳定版本和测试版本返回响应差异处: image.png 7.

    3.7K30

    从0开始做系统

    前面已经写了如何做接口,那是方便调用。现在写个如何做后台系统,是方便操作Django自带后台管理是Django明显特色之一,可以让我们快速便捷管理数据。...后台管理可以在各个appadmin.py文件中进行控制。 假如有个小白,想做个后台系统,如何做,他可以直接用Djangoadmin来弄。...在appmodels定义好字段。...,列表时,对Date和DateTime类型进行搜索 inlines,详细页面,如果有其他表和当前表做FK,那么详细页面可以进行动态增加和删除 action,列表时,定制action操作 定制HTML...可以参考: django admin高级扩展 简单定制了一下: from django.contrib import admin # Register your models here.

    1.4K30

    后端框架学习-Django

    简易图: 用户操作流程图: ---- MTV 模型 Django MTV 模式本质上和 MVC 是一样,也是为了各组件间保持松耦合关系,只是定义上有些许不同Django MTV 分别是指...一个模型类代表数据库一张数据表 模型类每一个类属性都代表数据库一个字段 模型是数据交互接口,是表示和操作数据库方法和方式。...id字段 blank:设置True,则字段可以为空,控制Admin后台提交,和mysqlnull不同 null:设置True,则该列允许空 默认为False,需要一个default选项来设置默认值...模型管理器类 作用:后台管理界面添加便于操作新功能 继承于django.contrib.adminModelAdmin类 在应用admin.py定义模型管理器类 class XXXXManager...在settings.py设置MEDIA相关配置,Django用户上传文件统称为media资源 MEDIA_URL='/media/' MEDIA_ROOT = os.path.join(BASE_DIR

    9.4K40
    领券