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

如何授权用户访问django中/admin的Model Form的特定字段/对象?显示html页面中的特定字段

在Django中,可以通过授权用户访问Model Form的特定字段/对象来限制用户对/admin的访问。以下是一种实现方法:

  1. 创建一个自定义的ModelAdmin类,用于管理/admin中的特定模型。
代码语言:txt
复制
from django.contrib import admin
from django.contrib.auth.models import User

class MyModelAdmin(admin.ModelAdmin):
    def get_form(self, request, obj=None, **kwargs):
        form = super().get_form(request, obj, **kwargs)
        user = request.user

        # 根据用户权限设置可见字段
        if not user.is_superuser:
            # 如果用户不是超级用户,则只显示特定字段
            form.base_fields['specific_field'].widget.attrs['readonly'] = True
            form.base_fields['specific_field'].widget.attrs['disabled'] = True

        return form

    def get_queryset(self, request):
        qs = super().get_queryset(request)
        user = request.user

        # 根据用户权限设置可见对象
        if not user.is_superuser:
            # 如果用户不是超级用户,则只显示特定对象
            qs = qs.filter(user=user)

        return qs

admin.site.register(MyModel, MyModelAdmin)

在上述代码中,我们创建了一个自定义的ModelAdmin类MyModelAdmin,并重写了get_formget_queryset方法。在get_form方法中,我们根据用户权限设置可见字段,只有超级用户可以看到所有字段,其他用户只能看到特定字段,并将其设置为只读和禁用。在get_queryset方法中,我们根据用户权限设置可见对象,只有超级用户可以看到所有对象,其他用户只能看到特定对象。

  1. 在html页面中显示特定字段,可以通过在模板中使用Django的模板语言来实现。
代码语言:txt
复制
{% extends "admin/base.html" %}

{% block content %}
  <h1>{{ model_name }}</h1>
  <form method="post" action="{% url 'admin:app_model_change' model_id %}">
    {% csrf_token %}
    {{ form.as_p }}
    <input type="submit" value="Save">
  </form>
{% endblock %}

在上述代码中,我们使用了Django的模板语言来渲染表单字段。{{ form.as_p }}会将表单字段以段落的形式显示出来,你可以根据需要自定义表单的显示方式。

以上是授权用户访问Django中/admin的Model Form的特定字段/对象的一种实现方法。对于显示html页面中的特定字段,可以通过使用Django的模板语言来渲染表单字段。请注意,这只是一种示例方法,具体实现方式可能因项目需求而异。

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

相关·内容

37.Django1.11.6文档

这个验证特定于该类型字段,与后面如何使用它无关。...权限和授权 Django本身提供了一个简单权限系统。 它提供了一种为特定用户用户组分配权限方法。 它被Djangoadmin站点使用,但欢迎你在你自己代码中使用。...Django admin 站点使用如下权限: 拥有该类型对象"add"权限用户才可以访问"add"表单以及添加一个该类型对象。...这对可重用应用作者是很有用, 因为他可以委托所有的请求, 例如控制匿名用户访问,给这个认证后端, 而不需要设置它 授权非活动用户 非活动用户是将is_active字段设置为False用户。 ...也就是说,list_editable列出字段将在更改列表页面显示为表单小部件,允许用户一次编辑和保存多行。

24.3K80
  • django 1.8 官方文档翻译:13-1-2 使用Django认证系统

    它提供一种分配权限给特定用户用户方法。 它被Djangoadmin站点使用,但欢迎你在你自己代码中使用。...限制访问给登陆后用户 原始方法 限制页面访问简单、原始方法是检查request.user.is_authenticated()并重定向到一个登陆页面: from django.conf import...可以像其它任何Django模型一样创建和删除用户。可以创建组,并分配权限给用户和组。admin还会保存和显示用户模型编辑日志。...创建用户admin主页,你应该可以在“Auth”部分看到“Users”链接。“Add user” 页面与标准admin页面不同点在于它要求你在编辑用户其它字段之前先选择一个用户名和密码。...修改密码 用户密码不会显示admin上(也不会存储在数据库),但是会显示 密码存储细节。 这个信息显示包含一条指向修改密码表单链接,允许管理员修改用户密码。

    4.7K20

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

    配置选项:在Admin,可以设置各种选项,如list_display用于指定列表页面显示字段,search_fields用于添加搜索框等。...2.3 字段字段管理 字段管理:可以在Admin类中使用fields或fieldsets属性来控制编辑页面字段显示。...认证后端:Django允许定义多个认证后端,用于验证用户凭据。 权限和授权Django权限系统基于对象,允许为每个对象实例设置权限。...3.3 自定义用户模型 Django允许开发者自定义用户模型以满足特定需求。 替换默认用户模型:在settings.py设置AUTH_USER_MODEL指向自定义用户模型。...代码重构:减少不必要计算和复杂逻辑,提高代码执行效率。 2. 安全最佳实践 身份验证和授权:确保只有授权用户可以访问特定功能,使用强大密码策略和多因素认证。

    16710

    Django 3.1 官网学习路线

    不同模型字段类型(DateTimeField、CharField)对应于适当 HTML 输入小部件。每种类型字段都知道如何Django 管理显示自己。...您将看到一个页面,其中列出了通过 Django 管理员对这个对象所做所有更改,以及更改者时间戳和用户名: 第三部分 概览 视图是 Django 应用程序 Web 页面的“类型”,通常提供特定功能和特定模板...在我们投票应用程序,我们将有以下四个视图: 问题“索引”页面-显示最近几个问题。 问题“细节”页面-显示一个问题文本,没有结果,但有一个表格来投票。 问题“结果”页面-显示特定问题结果。...这是它现在样子: 默认情况下,Django 显示每个对象 str()。但有时如果我们能显示单独字段会更有帮助。...要做到这一点,使用 list_display 管理选项,它是一个字段元组,以列形式显示对象更改列表页面上: polls/admin.py¶ class QuestionAdmin(admin.ModelAdmin

    8.2K10

    探索Django:从项目创建到图片上传全方位指南

    在这个类,我们可以自定义模型在后台管理界面显示方式。在这个例子,我们通过设置list_display属性,指定了在Image模型列表页面显示哪些字段。...该函数将使用指定模板和上下文数据渲染HTML页面,并将渲染后页面作为HTTP响应返回给用户浏览器。在display.html 里面渲染页面urls.py配置URLspath('admin/', admin.site.urls),:将 admin 应用 URL 映射到 Django 自带管理页面。...fields = ['title', 'photo']:这行代码指定了表单应该显示字段。...从项目创建到环境配置,再到 admin 端图像处理和用户图片上传,我们逐步学习了如何利用 Django 提供功能快速搭建 Web 应用。

    27273

    Django admin 一些有用设置

    import Blog    #Blog模型管理器 @admin.register(Blog) class BlogAdmin(admin.ModelAdmin):     #listdisplay设置要显示在列表字段...4.设置只读字段  在使用admin时候,ModelAdmin默认对于model操作只有增加,修改和删除,但是总是有些字段是不希望用户来编辑。...这时我们就可以通过重写 get_readonly_fields 方法来实现对特定用户只读显示。...修改模版 chang_form.html 让普通用户 无法看到 “历史” 按钮。 默认 普通用户下 是存在 “历史” 按钮: ? 此时  chang_form.html  代码为: ?...9.自定义列表字段 上面的一对多和多对多可以数据编辑显示,但在列表没有显示。有时还需要显示一些其他东西。例如两个字段相乘计算结果等等。这些都可以通过自定义列表字段处理和显示

    2.6K70

    35.Django2.0文档

    在这个模式Model 代表数据存取层,View 代表是系统中选择显示什么和怎么显示部分,Controller 指的是系统根据用户输入并视需要访问模型,以决定使用哪个视图那部分。      ...第六章 Django站点管理  1.创建admin用户 python manage.py createsuperuser  访问:http://127.0.0.1:8000/admin/,输入用户名,密码登录进入管理界面...,作者邮箱地址允许输入一个空值  4.自定义字段标签      在编辑页面,每个字段标签都是从模块字段名称生成。...另一个常用编辑页面自定义是针对多对多字段。 真如我们在book编辑页面看到那样,`` 多对多字段`` 被展现成多选框。虽然多选框在逻辑上是最适合HTML控件,但它却不那么好用。...成员标志:它用来控制这个用户是否可以登录管理界面(即:这个用户是不是你们组织里成员) 由于用           户系统可以被用于控制公众页面(即:非管理页面访问权限(详见第十四章),这个标志可用来区分

    11.3K100

    Python自动化开发学习-Django

    django amdin是django提供一个后台管理页面,该管理页面提供完善html和css,使得你在通过Model创建完数据库表之后,就可以对数据进行增删改查。...这里是用admin后台管理页面创建用户,直接点击默认“认证和授权”下面的“用户”表,就可以创建记录。...', 'gender', 'dept') 这里要搭配list_display一起用,就是显示出来列表,哪些字段是可以直接在列表修改,这种就不用一个一个点进去改了。...这是django提供方法,所以也支持用户组。 只要能拿到User对象和权限名,就是获取到一个True或False结果。...form_obj = model_form_class(instance=obj) # 实例化,然后传入默认值 return render(request, 'steed_admin/table_change.html

    1.8K30

    Django—常用功能

    html页面调用时,也需要指定静态文件路径,Django中提供了一种解析方式配置静态文件路径。...说直白一点间件是帮助我们在视图函数执行之前和执行之后都可以做一些额外操作,它本质上就是一个自定义类,类定义了几个方法,Django框架会在请求特定时间去执行这些方法。...关联对象 在一对多关系,可以在一端编辑页面编辑多端对象,嵌入多端对象方式包括表格、块两种。 类型InlineModelAdmin:表示在模型编辑页面嵌入关联模型编辑。...上去 四、上传图片 在Django中上传图片包括两种方式: 在管理页面admin中上传图片 自定义form表单中上传图片 上传图片后,将图片存储在服务器上,然后将图片路径存储在表。...') View Code 这样虽然拦截了用户去登录,但登录后用户并没有回到之前访问页面,比如访问自己个人中心,购物车等页面,登录后自己还需要再打开连接。

    2.7K30

    Django 学习笔记之表单

    但在大多数情况下,Forms 携带数据发送到 Web 服务器,Web 页面会将其拦截并自己使用它。举个栗子,用户使用浏览器访问一个页面,在页面的搜索框输入图书名称,想获取所有销售该图书商店。...对象 Objects Form对象封装了一系列 Field 和验证规则,Form 类都必须直接或间接继承自 django.forms.Form,定义 Form 有两种方式: 方法一:根据 Model...1) Widget 用来渲染成 HTML 元素工具,如:forms.TextInput 对应 HTML input标签 2) Form 一系列 Field 对象集合,负责验证和显示 HTML...譬如:Model 某些属性我不需要显示页面上,或数据处理方式比较复杂,这个时候你就需要自定义 Form。自定义 Form 是直接继承 Form。...: model = Author fields = ('name',) # 只显示 model 中指定字段 3.3 视图层处理 在视图文件 view.py , 可以获取

    2.6K30

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

    auto_now、auto_now_add 7.获取已登录用户名字 8.数据库表属性自增/自减操作 9.执行原始sql语句 10.分页显示数据 1.前后台数据传递 view -> HTML:使用...model时,有DateTimeField、DateField和TimeField三种类型可以用来创建日期字段,其值分别对应着datetime()、date()、time()三对象,这三个field...需要注意是,设置该参数为true时,并不简单地意味着字段默认值为当前时间,而是指字段会被“强制”更新到当前时间,你无法程序手动为字段赋值;如果使用django自带admin管理器,那么该字段admin...auto_now_add: 设置为True时,会在model对象第一次被创建时,将字段值设置为创建时时间,以后修改对象时,字段值不会再更新。该属性通常被用在存储“创建时间”场景下。...与auto_now类似,auto_now_add也具有强制性,一旦被设置为True,就无法在程序手动为字段赋值,在admin字段也会成为只读

    1.4K10

    后端框架学习-Django

    T 表示模板 (Template):负责如何页面(html)展示给用户。 V 表示视图(View):负责业务逻辑,并在适当时候调用 Model和 Template。...重写,则按照重写效果显示 注意: 模板继承时,服务器动态内容无法继承 url反向解析 代码url位置: 1.模板 超链接 form表单 form action 将表单数据用...verbose_name:设置此字段admin界面上显示名称,可以中文化admin界面 好习惯:字段选项【添加或更改】均要执行 模型类-Meta内部类 使用Meta类来给**模型(其实就是表属性)...(request): return … 分页 分页指在web页面有大量数据需要显示,为了阅读方便在每个页显示部分数据。...‘xxx’] 说明: 1.FILESkey对应页面file框name值 2.file绑定文件流对象 3.file.name文件名 4.file.file文件字节流数据 配置文件访问路径和存储路径

    9.5K40

    关于“Python”核心知识点整理大全59

    在2处输出Django指出我们试图给既有 模型Topic添加一个必不可少(不可为空)字段,而该字段没有默认值。...由于我们没有修改主题显示方式,因此无需对页面topics模板做任何修改。 要查看结果,以所有既有主题关联到用户身份登录,并访问topics页面,你将看到所有 主题。...19.3.4 保护用户主题 我们还没有限制对显示单个主题页面访问,因此任何已登录用户都可输入类似于 http://localhost:8000/topics/1/URL,来访问显示相应主题页面...以拥有所有主题用户身份登录,访问特定主题,并复制该页 面的URL,或将其中ID记录下来。然后,注销并以另一个用户身份登录,再输入显示前述主 题页面的URL。...Django意思是说,创建新主题时,你必须指定其owner字段值。 由于我们可以通过request对象获悉当前用户,因此存在一个修复这种问题简单方案。

    13710

    Django—第三方引用

    pip install django-tinymce 安装完成后,可以使用在Admin管理,也可以自定义表单使用。...上去 1.3 显示 通过富文本编辑器产生字符串是包含html。 在数据库查询如下图: ? 在模板显示字符串时,默认会进行html转义,如果想正常显示需要关闭转义。...上去 二、全文检索 全文检索不同于特定字段模糊查询,使用全文检索效率更高,并且能够对于中文进行分词处理。...搜索结果进行分页,视图向模板传递上下文如下: query:搜索关键字 page:当前页page对象 paginator:分页paginator对象 视图接收参数如下: 参数q表示搜索内容,传递到模板数据为...2)在新页面中点击“客户端授权密码”,勾选“开启”,弹出新窗口填写手机验证码。 ? 3)填写授权码。 ? 4)提示开启成功。 5)打开项目的settings.py文件,配置。

    1.1K10

    Django 上传图片和Admin站点5.2

    站点 通过使用startproject创建项目模版,默认Admin被启用 1.创建管理员用户名和密码 python manage.py createsuperuser 然后按提示填写用户名、邮箱、...对象 ModelAdmin类是模型在Admin界面表示形式 定义:定义一个类,继承于admin.ModelAdmin,注册模型时使用这个类 class HeroAdmin(admin.ModelAdmin...True actions_on_bottom = True list_display 出现列表显示字段 列表类型 在列表,可以是字段名称,也可以是方法名称,但是方法名称默认不能排序 在方法可以使用...from django.utils.html import format_html class HeroInfo(models.Model): hname = models.CharField.../templates)将模板页面的源文件admin/base_site.html拷贝到第一步建好目录里 编辑base_site.html文件 刷新页面,发现以刚才编辑页面效果显示 其它管理后台模板可以按照相同方式进行修改

    47230

    Django】当大型项目采用Django框架对于QueryDict以及模板表单在Admin 管理工具使用

    QueryDict 在HttpRequest对象,GET和POST属性是django.http实例。QueryDict类。 QueryDict是一个用户定义类,类似于字典。...响应可以是HTML页面、404错误页面、重定向页面、XML文档或图像 无论视图包含什么逻辑,都必须返回响应。代码可以在任何地方编写,只要它在Python目录,通常在项目视图Py文件。...每个视图函数负责返回一个HttpResponse对象,该对象包含生成响应。 视图层中有两个重要对象:请求对象和响应对象Admin 管理工具 我们可以自定义管理页面以替换默认页面。...字段属性定义要显示字段。 因为这个类对应于Contact数据模型,所以我们需要在注册时一起注册它们。...在默认页面显示,不能将两者分开以反映其相关性。我们可以使用内联显示将标记附加到联系人编辑页面

    1.7K20
    领券