#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