Администратор Django TabularInline, жалующийся на отсутствующее поле - PullRequest
1 голос
/ 08 октября 2011

У меня есть следующая модель и подклассы TabularInline:

class SomeModel(models.Model):
    name = models.CharField(max_length=50)

class SomeModelInline(admin.TabularInline):
    model = SomeModel

class SomeOtherModelAdmin(admin.ModelAdmin):
    inlines = [SomeModelInline]

Без явного указания полей TabularInline администратор Django показывает поля «id» и «name».Однако, когда я пытаюсь сделать:

class SomeModelInline(admin.TabularInline):
    model = SomeModel
    fields  ['id','name']

Django выдает исключение ImproperlyConfigured:

'SomeModelInline.fields' refers to field 'id' that is missing from the form.

Что здесь происходит?Почему я не могу явно указать идентификатор, хотя Джанго явно способен получить к нему доступ?

1 Ответ

2 голосов
/ 08 октября 2011

Идентификаторы недоступны для редактирования, по умолчанию inline показывает редактируемые поля, но вы также можете отображать недоступные для редактирования поля.

Из django docs

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

Поэтому сначала добавьте 'id' в readonly_fields, а затем добавьте его в поля

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...