首页
学习
活动
专区
工具
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 或者保持默认: 需要打开文档、媒体、网页文件等 需要打开

1.5K20
  • 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定义的各字段类型及参数说明。 ?

    16.1K32

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

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

    30310

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

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

    5K30

    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 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。

    26010

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

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

    2.3K60

    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 =>博客唯一ID为2的文章/blog/detail/3 =>博客唯一ID为3的文章1.2完善视图函数逻辑实现上下篇文章跳转实现分页功能/blog/index?

    68520

    测试利器 | 一款开源的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.9K20

    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这类型的差异可被忽略掉。 通过结合接口返回详情功能,可查看到稳定版本和测试版本返回响应的差异处: image.png 7.

    4.2K30

    后端框架学习-Django

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

    9.6K40

    从0开始做系统

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

    1.4K30

    Python Django开发 经验技巧总结(一)

    、auto_now_add 创建django的model时,有DateTimeField、DateField和TimeField三种类型可以用来创建日期字段,其值分别对应着datetime()、date...auto_now: 这个参数的默认值为false,设置为true时,能够在保存该字段时,将其值设置为当前时间,并且每次修改model,都会自动更新。...需要注意的是,设置该参数为true时,并不简单地意味着字段的默认值为当前时间,而是指字段会被“强制”更新到当前时间,你无法程序中手动为字段赋值;如果使用django自带的admin管理器,那么该字段在admin...auto_now_add: 设置为True时,会在model对象第一次被创建时,将字段的值设置为创建时的时间,以后修改对象时,字段的值不会再更新。该属性通常被用在存储“创建时间”的场景下。...与auto_now类似,auto_now_add也具有强制性,一旦被设置为True,就无法在程序中手动为字段赋值,在admin中字段也会成为只读的。

    1.4K10
    领券