如何允许在 Django 的 TabularInline class 中适合新记录的 read_only 字段

How allow to fit read_only field for new record in TabularInline class in Django

我希望在记录已保存时有一个只读字段,但如果管理员添加新记录字段必须是可编辑的。

如何实现?

为此,您可以使用 ModelAdmin 的 get_readonly_fields 方法。创建对象时,将 obj 设置为 None。通过重写该方法,您可以更改 read_only 字段(如果 obj 存在或不存在)。

def get_readonly_fields(self, obj):
    if obj:
       return ['field_1', 'field_2']
    else:  # When object is created
       return [] # no editable field

参考文献: