Требуется ли параметр editable=False?

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

Более того, все эти действия должны происходить в StackedInline, который привязан к классу ModelAdmin другой модели.

Пример модели:

class IncludingModel(models.Model):
    ...


class ReadAndDeleteOnlyModel(models.Model):
    field1 = models.TextField(verbose_name="First field", editable=False)
    field2 = models.TextField(verbose_name="Second field", editable=False)

    including_model_instance = models.ForeignKey(IncludingModel, related_name="read_and_delete_only_instances")

Пример администратора

class ReadAndDeleteOnlyModelInline(admin.StackedInline):
    model = ReadAndDeleteOnlyModel
    readonly_fields = ("field1", "field2")

    def has_add_permission(self, request, obj):
        return False


@admin.register(IncludingModel)
class IncludingModelAdmin(admin.ModelAdmin)
    inlines = (ReadAndDeleteOnlyModelInline,)

Взаимодействие с экземплярами ReadAndDeleteOnlyModel происходит только в IncludingModelAdmin. После удаления editable = False мои поля по-прежнему доступны только для чтения, поскольку я указал их в readonly_fields. В связи с этим возникает вопрос, нужен ли editable = False в моем случае?

По умолчанию параметр editable имеет значение True. Если вы измените его на False, поле не будет отображаться в админке или любой другой ModelForm. Они также будут пропущены при проверке модели.

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