Django admin - inline inlines(或者,同时编辑三个模型)
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 %}
我知道在Django admin中内联嵌套的技巧会失败,正如我预期的那样。有人知道允许这种三级模型编辑的方法吗?先谢谢了。