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

django admin在修改obj时使字段为只读,但在添加新obj时需要

在Django Admin中,可以通过自定义ModelAdmin类来实现在修改对象时使字段为只读,但在添加新对象时需要编辑的需求。以下是一种实现方式:

  1. 创建一个自定义的ModelAdmin类,继承自Django自带的ModelAdmin类。
代码语言:python
代码运行次数:0
复制
from django.contrib import admin

class MyModelAdmin(admin.ModelAdmin):
    readonly_fields = ('field1', 'field2', 'field3')  # 设置需要设为只读的字段

    def get_readonly_fields(self, request, obj=None):
        if obj:  # 如果是修改对象
            return self.readonly_fields + ('field4', 'field5')  # 添加需要额外设为只读的字段
        return self.readonly_fields  # 添加新对象时,所有字段都设为只读
  1. 在admin.py文件中注册你的ModelAdmin类。
代码语言:python
代码运行次数:0
复制
from django.contrib import admin
from .models import MyModel

admin.site.register(MyModel, MyModelAdmin)

在上述代码中,readonly_fields属性用于设置需要设为只读的字段。get_readonly_fields方法用于根据操作类型动态返回只读字段列表。如果是修改对象,则额外添加需要设为只读的字段;如果是添加新对象,则返回所有字段都设为只读。

这样,在Django Admin中,当你修改对象时,指定的字段将会是只读的,而当你添加新对象时,所有字段都将是只读的。

关于Django Admin的更多信息和用法,你可以参考腾讯云的Django Web框架文档:Django Web框架

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

相关·内容

领券