tengo un conjunto de modelos que se parecen a esto:Django admin - inlines en línea (o, tres de edición de modelo a la vez)
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()
y un admin.py que tiene este aspecto:
class LinkInline(admin.TabularInline):
model = Link
class LinkSectionInline(admin.TabularInline):
model = LinkSection
inlines = [ LinkInline, ]
class PageAdmin(admin.ModelAdmin):
inlines = [ LinkSectionInline, ]
Mi objetivo es conseguir una interfaz de administrador que me permita editar todo en una página. El resultado final de esta estructura del modelo es que las cosas se generan en una vista + plantilla que se ve más o menos así:
<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 %}
Sé que el truco en línea-en-una-línea falla en la administración de Django, como Esperaba. ¿Alguien sabe de una manera de permitir este tipo de edición de modelo de tres niveles? Gracias por adelantado.
¿Podría mostrar el código final con la solución que ha aceptado? –