在 Django 管理中禁用选择列表,仅用于编辑

2023-12-29

我想在编辑对象时禁用某些字段。我已经设法对文本字段执行此操作,但对于下拉列表(选择列表)来说这是不可能的。

我正在表单的构造函数中执行此操作。

class OrderModelForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(forms.ModelForm, self).__init__(*args, **kwargs)
        instance = getattr(self, 'instance', None)
        if instance and instance.pk:
            self.fields['description'].widget.attrs['readonly'] = True
            self.fields['city_code'].widget.attrs['disabled'] = True

请注意我是如何用不同的方式为两者制作的keywords,但我不能为我做这件事customer_id field.


将属性设置为disabled or readonly只影响小部件的显示方式。它实际上并不能阻止某人提交更改这些字段的发布请求。

这可能是一个更好的覆盖方法get_readonly_fields https://docs.djangoproject.com/en/1.8/ref/contrib/admin/#django.contrib.admin.ModelAdmin.get_readonly_fields为你的模型。

class OrderModelAdmin(admin.Model
    def get_readonly_fields(self, request, obj=None):
        if self.obj.pk:
            return ['description', 'city_code', 'customer']
        else:
            return []
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Django 管理中禁用选择列表,仅用于编辑 的相关文章

随机推荐

  • 上传图片时获取图片名称

    当我上传图片时 h3 Img h3
  • 错误“\..此时是意外的”

    我用它创建了一个 reg 以添加Delete empty folders我的上下文菜单中的命令 当我右键单击一个文件夹时 这应该删除其空的子文件夹 我的上下文菜单中有 删除空文件夹 但是当我选择此选项时 会打开一个 cmd 窗口 并收到此错
  • NativeBase + 指数标头

    我正在使用 NativeBase 和 Exponent 标题位于手机状态栏下方 您可以在本地库 https getexponent com community native baseExponent 发布的演示 有人能解决这个问题吗 由于此
  • 无法从初始 URI 检索初始集群分区 [RedisURI [host='127.0.0.1', port=7001]]

    我正在开发 Lettuce 集群 Java 客户端 它设置在一个bolt拓扑 Apache Strom spout正在读取数据kafka并将其传递给bolt 但是 当我开始拓扑时 我收到以下错误消息并且程序终止 我错过了什么吗 是什么原因造
  • 猴子补丁节点模块

    我正在尝试猴子补丁该节点模块 https github com johnvmt node desktop screenshot in electron https electronjs org 应用 我想改变capture方法输入参数 到目
  • Angular 6 angular.json 在配置中添加 ssl

    我想通过 SSL 为我的应用程序提供服务 之前我有这个脚本 ng serve ssl ssl key pathtokey key crt 我想在新的 angular json 中添加 SSL 但是当我尝试添加它时出现错误 Schema va
  • codemirror - 与代码重叠的行号

    我正在使用最新的 codemirror v5 49 0 对于我的电子文本编辑器应用程序 有时行号会与文本重叠呈现 无法重现该错误 因为它并不总是发生 通过多次刷新应用程序即可轻松重现 有人有主意吗 或者这对您来说可能是一个已知问题 我也遇到
  • Spring Boot、Thymeleaf 和 @Controller

    我正在使用 Spring Boot 但有些东西我不太明白 我有2个 Controller在我的应用程序中 第二个并没有真正接收 REST 调用 Thymeleaf 正在跳转请求 基本上我所拥有的是 Configuration Compone
  • MSDeploy安装Windows服务?

    我们有一个使用 NServiceBus 发布事件的网站 该站点是使用 msdeploy 部署的 我们还有 NServiceBus exe 它应该作为 Windows 服务运行来订阅这些事件 我们也想部署它 有什么方法可以将服务和网站打包在一
  • `getElementById` 返回 null [重复]

    这个问题在这里已经有答案了 一个案例document getElementById返回null 我已经阅读了 SO 中的其他四个问题 并阅读了 MDN 上的参考资料 但我不知道出了什么问题 请帮我 代码如下 HTML
  • WPF Canvas,如何使用MVVM代码动态添加子项

    要求 根据点的集合绘制一个位图图像和矩形 矩形应完全适合图像上的像素位置 还需要在矩形内添加一些文本 图像始终只有一张 并且矩形将动态添加 目前的解决方案 有一个带有图像控制的画布 在代码隐藏文件ViewImageResult xaml c
  • 如何在 Geodjango/GEOS 中将公里转换为度?

    我正在使用 GEOS API 中的 缓冲区 方法根据 GeoDjango 中的点和半径创建一个圆 根据这个答案 GeoDjango 如何根据点和半径创建圆 https stackoverflow com questions 4985222
  • @Async 不适用于 Spring API 中的接口

    我正在使用 Async 使用 hibernate 在数据库中并行存储一些数据 我需要这样做 因为在将信息保存到数据库之前 我需要运行一些需要几分钟的任务 所以我实现了 Async 问题是 Async 似乎不起作用 请找到下面的代码 网页配置
  • 如何迭代 std::set?

    我有这个代码 std set
  • 无论如何,有没有办法“探测”common lisp 中的方法

    我的应用程序允许用户间接创建自己的方法 稍后我需要引用这些方法 我想知道是否有一种方法 用于错误检查目的 来测试方法是否存在而不尝试执行它 如果我只是尝试调用该方法但它不存在 这将使我的应用程序崩溃 另请参阅函数 FIND METHOD h
  • 如何在 Windows 操作系统上查找计算机上安装的 JVM 是 HotSpot 还是 JRockit

    如何确定 Windows 机器上安装的 JVM 是 HotSpot 还是 JRockit 还是来自任何其他供应商 在终端中运行此命令 java XshowSettings properties version
  • 尽管我只定义了 X 一次,但在 C 中出现“首先在此处定义了‘X’的多重定义”错误

    尽管我仍然收到错误 但我的所有文件中只有一个名称 代码 的定义 我尝试使用 pragma Once 和 ifndef 但没有成功 这是我收到的错误 marcin marcin VirtualBox Pulpit INA Wst p Laby
  • 我可以在不使用麦克风的情况下录制

    我有一个
  • 使用 C++ 和 Visual Studio 2008 设置 OpenGL

    嘿 我想知道是否有关于如何设置这个的好的教程 我已经在 gamedev net 上看过 NeHe 教程 但其中一些似乎已经过时了 有什么线索吗 thanks NeHe http nehe gamedev net可能有点旧 但绝对不会过时 与
  • 在 Django 管理中禁用选择列表,仅用于编辑

    我想在编辑对象时禁用某些字段 我已经设法对文本字段执行此操作 但对于下拉列表 选择列表 来说这是不可能的 我正在表单的构造函数中执行此操作 class OrderModelForm forms ModelForm def init self