Ich habe eine Reihe von Modellen, die so aussehen:
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()
und eine admin.py, die wie folgt aussieht:
class LinkInline(admin.TabularInline):
model = Link
class LinkSectionInline(admin.TabularInline):
model = LinkSection
inlines = [ LinkInline, ]
class PageAdmin(admin.ModelAdmin):
inlines = [ LinkSectionInline, ]
Mein Ziel ist es, eine Verwaltungsoberfläche zu bekommen, mit der ich alles auf einer Seite bearbeiten kann. Das Endergebnis dieser Modellstruktur ist, dass die Dinge in eine Ansicht+Vorlage generiert werden, die mehr oder weniger wie aussieht:
<h1>{{page.title}}</h1>
{% for ls in page.linksection_set.objects.all %}
<div>
<h2>{{ls.title}}</h2>
<ul>
{% for l in ls.link_set.objects.all %}
<li><a href="{{l.url}}">{{l.title}}</a></li>
{% endfor %}
</ul>
</div>
{% endfor %}
Ich weiß, dass der inline-in-an-inline-Trick im Django-Admin fehlschlägt, wie ich erwartet hatte. Kennt jemand eine Möglichkeit, diese Art von Modellbearbeitung auf drei Ebenen zu ermöglichen? Vielen Dank im Voraus.