Как разместить поле read_only для новой записи в классе TabularInline в Django

Я хочу иметь поле readonly, когда запись уже сохранена, но если администратор добавляет новую запись, поле должно быть редактируемым.

Красные стрелки - только чтение; Синяя стрелка - отредактировано.

Как я могу этого достичь?

enter image description here

Для этого можно использовать метод ModelAdmin get_readonly_fields. Когда объект создается, obj устанавливается в None. Переопределив метод, вы можете изменять поля только для чтения, независимо от того, присутствует obj или нет.

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

Ссылки:

Вернуться на верх