首页 > 后端开发 > Python教程 > 如何在Django管理面板中禁用管理编辑

如何在Django管理面板中禁用管理编辑

Barbara Streisand
发布: 2025-01-27 06:12:08
原创
937 人浏览过

> django管理面板:一种仅阅读数据管理方法

> Django Admin面板提供了用于管理模型,数据和用户的用户友好接口。 它的内置搜索和过滤功能非常方便。但是,有时限制对特定模型或字段的编辑访问至关重要。 当需要维护数据完整性,防止意外修改或面板仅用于数据查看时,尤其如此。

一个实践示例

>最近,客户需要一个解决方案,以查看,过滤和呼唤从外部网站上刮除的数据 - 特别是跟踪新的属性列表。 Django提供了一个优雅的解决方案,允许数据管理无需自定义页面创建。 下面的

是说明实现的屏幕截图:

管理面板概述:

How to disable admin editing in Django Admin Panel此视图仅显示导入/导出选项; 直接在管理面板中添加或编辑数据是不可能的。

>

>个人条目页面:

同样,单个属性页面以仅阅读模式显示,缺少任何编辑功能。How to disable admin editing in Django Admin Panel

>让我们探索如何在Django中实现此仅阅读功能。 在Django Admin中禁用编辑

>

1。模型定义

>用于存储刮擦属性数据的核心模型:

2。自定义管理面板(

禁用编辑,覆盖
<code class="language-python">from django.db import models

class Property(models.Model):
    name = models.CharField(max_length=255)
    price = models.IntegerField()
    location = models.CharField(max_length=255)
    date_listed = models.DateField()

    def __str__(self):
        return self.name</code>
登录后复制

>>>文件中的方法:admin.py>

>基础类(has_add_permission)在这里用于管理has_change_permission用于增强的数据表示。admin.py

结果
<code class="language-python">from django.contrib import admin
from .models import Property

class ReadOnlyAdmin(admin.ModelAdmin):
    list_display = ('name', 'price', 'location', 'date_listed')

    def has_add_permission(self, request):
        return False

    def has_change_permission(self, request, obj=None):
        return False

admin.site.register(Property, ReadOnlyAdmin)</code>
登录后复制

这种方法实现了:ReadOnlyAdmin list_display

>

删除“添加”按钮:

添加新条目的选项已完全从管理接口中删除。>

    >仅阅读条目页面:
  1. 单击现有条目在只读视图中打开它,没有保存按钮。>
  2. 此设置是数据显示至关重要的方案,并且编辑或添加条目是不必要的或可能有问题的。>

    只读管理面板的好处

    • 数据完整性:防止意外修改外部来源的数据(例如,通过抓取或 API)。
    • 参考数据的只读视图:非常适合在分析仪表板、属性列表或日志等应用程序中查看和过滤数据。

    结论

    在 Django Admin 中禁用编辑非常简单,并且对于保护数据和提供安全的只读访问非常有益。 通过执行以下步骤,您可以快速创建安全的只读管理面板。

    保持联系 - @syedamahamfahim ?

以上是如何在Django管理面板中禁用管理编辑的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板