администратор django, дублирующий входные строки

#django #django-admin

#django #django-администратор

Вопрос:

По какой-то причине на моем сайте администратора я вижу, что конкретная строка дублируется. У меня есть следующие модели:

 class PageBase(ContentContainer):
  title = models.CharField(max_length=1000)
  slug = models.SlugField()


class PageBanner(models.Model):
    name = models.CharField(max_length=1000)
    page = models.ForeignKey(PageBase)
    banner_images = models.ManyToManyField(BannerImage)
  

Затем в моем admin.py У меня есть:

 class PageBannerInline(admin.StackedInline):
  model = models.PageBanner
  extra = 1

class PageAdmin(admin.ModelAdmin):
    model = models.Page
    inlines = PageBannerInline

admin.site.register(models.Page, PageAdmin)
admin.site.register(models.PageBanner, PageBannerAdmin) 
  

По какой-то причине каждый раз, когда я добавляю PageBanner на любую страницу в admin, создавая таким образом еще один встроенный для этой страницы, я получаю еще один дополнительный встроенный баннер на КАЖДОЙ странице (включая тот, на который я добавил).

Итак, если у меня есть 4 страницы, и на каждой странице есть 1 баннер, я увижу 3 дополнительных встроенных строки на каждой странице.

Что здесь происходит? Это быстро становится неуправляемым, встроенные строки занимают слишком много места.

Вот изображение входных строк: введите описание изображения здесь

Комментарии:

1. я не уверен, но вы пробовали использовать: inlines = (PageBannerInline,)

Ответ №1:

AFAIK, это поведение Django по умолчанию — добавлять 3 формы для вашей встроенной модели, так что вы можете добавить 3 экземпляра одновременно. Вы должны быть в состоянии изменить это с помощью атрибута ‘extra’:

http://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin .InlineModelAdmin.extra