Django admin - inline inlines(或者,同时编辑三个模型)

7 浏览
0 Comments

Django admin - inline inlines(或者,同时编辑三个模型)

我有一组模型,看起来像这样:

class Page(models.Model):
    title = models.CharField(max_length=255)
class LinkSection(models.Model):
    page = models.ForeignKey(Page)
    title = models.CharField(max_length=255)
class Link(models.Model):
    linksection = models.ForeignKey(LinkSection)
    text = models.CharField(max_length=255)
    url = models.URLField()

还有一个admin.py,看起来像这样:

class LinkInline(admin.TabularInline):
    model = Link
class LinkSectionInline(admin.TabularInline):
    model = LinkSection
    inlines = [ LinkInline, ]
class PageAdmin(admin.ModelAdmin):
    inlines = [ LinkSectionInline, ]

我的目标是获得一个管理界面,允许我在一个页面上编辑所有内容。这个模型结构的最终结果是生成一个视图+模板,看起来更或多或少像这样:

{{page.title}}

{% for ls in page.linksection_set.objects.all %}

{{ls.title}}

    {% for l in ls.link_set.objects.all %}
  • {{l.title}}
  • {% endfor %}
{% endfor %}

我知道在Django admin中内联嵌套的技巧会失败,正如我预期的那样。有人知道允许这种三级模型编辑的方法吗?先谢谢了。

0