Django多个嵌套内联表单集

Rob*_*b L 4 django django-forms

这甚至可能吗?

我需要存储一些要作为json/rest检索的文档.

A Document有很多Sections,有一个部分有一个标题,一个正文和许多Images.

有没有办法用这种结构制作表格?

Publication
|-- Section
    |-- Image
    |-- Image
|-- Section
    |-- Image
|-- Section
    |-- Image
    |-- Image
    |-- Image
Run Code Online (Sandbox Code Playgroud)

我的模特:

class Publication(models.Model):
    title = models.CharField(max_length=64)

class Section(models.Model):
    publication = models.ForeignKey(Publication)
    heading = models.CharField(max_length=128)
    body = models.TextField()

class Image(models.Model):
    section = models.ForeignKey(Section)
    image = models.ImageField(upload_to='images/')
    caption = models.CharField(max_length=64, blank=True)
    alt_text = models.CharField(max_length=64)
Run Code Online (Sandbox Code Playgroud)

Image与之相关时Publication,我可以相对容易地做到这一点,因为只有一个级别的嵌套.

但是,当Image属于时Section,我不确定如何构建表单.似乎没有简单的方法可以使用内联表单集来完成此操作.

有人可以帮忙吗?

hel*_*ate 6

这不能在香草Django中完成.我为此使用了django-nested-inlines,它的效果非常好.

from django.contrib import admin
from nested_inlines.admin import NestedModelAdmin, NestedTabularInline

from my.models import Publication, Section, Image


class ImageInline(NestedTabularInline):
    model = Image


class SectionInline(NestedTabularInline):
    model = Section
    inlines = [ImageInline,]


class PublicationAdmin(NestedModelAdmin):
    inlines = [SectionInline,]


admin.site.register(Publication, PublicationAdmin)
Run Code Online (Sandbox Code Playgroud)