Администратор Django дублирует строки - PullRequest
0 голосов
/ 20 апреля 2011

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

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 на любую страницу администратора, создавая, таким образом, еще один встроенный баннер для этой страницы, я получаю еще один дополнительный баннер на каждой странице (включая ту, которую я добавил).

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

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

Вот изображение строк: enter image description here

1 Ответ

0 голосов
/ 20 апреля 2011

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

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

...