Атрибут extra

Атрибут extra применяется в классе TabularInline для управления количеством дополнительных пустых форм, которые отображаются в интерфейсе администратора для добавления новых связанных записей. Этот атрибут позволяет настроить удобное количество полей для ввода данных, чтобы администратор мог быстро добавлять несколько объектов без необходимости перезагрузки страницы. Значение атрибута - это целое положительное число.

Синтаксис

pythonclass RelatedInline(admin.TabularInline):
  model = RelatedModel
  extra = number

Пример

Рассмотрим модель Article и связанную с ней модель Comment. В админке мы хотим отображать формы для добавления комментариев к статье. По умолчанию отображается три пустых формы, но мы можем изменить это количество:

pythonfrom django.contrib import admin
from myapp.models import Article, Comment

class CommentInline(admin.TabularInline):
  model = Comment
  extra = 1

@admin.register(Article)
class ArticleAdmin(admin.ModelAdmin):
  inlines = [CommentInline]

Пример

В этом примере мы создаем inline для модели Tag, связанной с моделью Article через ManyToManyField. Устанавливаем extra равным двум, чтобы администратор мог добавить сразу два новых тега:

pythonfrom django.contrib import admin
from myapp.models import Article, Tag

class TagInline(admin.TabularInline):
  model = Article.tags.through
  extra = 2

@admin.register(Article)
class ArticleAdmin(admin.ModelAdmin):
  inlines = [TagInline]

Смотрите также

  • атрибут model класса TabularInline,
    который указывает модель для отображения в inline-форме
  • атрибут fk_name класса TabularInline,
    который указывает имя внешнего ключа для связи
  • класс StackedInline,
    который отображает связанные объекты в вертикальном расположении
  • атрибут inlines класса ModelAdmin,
    который позволяет подключать inline-классы к модели