django admin 复制内联

发布于 2024-11-02 09:17:49 字数 941 浏览 0 评论 0原文

由于某种原因,在我的管理站点中,我看到特定的内联被重复。我有以下模型:

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 个额外的内联。

这是怎么回事?这很快就会变得难以管理,内联占用了太多空间。

这是内联的图像: 在此处输入图像描述

For some reason, in my admin site I am seeing a specific inline getting duplicated. I have the following models:

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)

Then in my admin.py I have:

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) 

For some reason, every time I add a PageBanner to any page in the admin, thus creating another inline for that page, I get another extra banner inline on EVERY page(including the one I added on).

So, if I have 4 pages and each page has 1 banner, I will see 3 extra inlines on every page.

What is going on here? This is quickly becoming unmanageable, the inlines take up way too much space.

Here is an image of the inlines:
enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

十秒萌定你 2024-11-09 09:17:49

AFAIK,Django 的默认行为是为内联模型添加 3 个表单,因此您可以一次添加 3 个实例。
您应该能够使用 'extra' 属性来更改它:

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

AFAIK, it's the default behavior of Django to add 3 forms for your inline model, so you can add 3 instances at once.
You should be able to change that with the 'extra' attribute:

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文