这甚至可能吗?
我需要存储一些要作为json / rest检索的文档。
Document
有很多Sections
,而一个部分有一个标题,一个正文和许多Images
。
有没有办法可以用这种结构制作表格?
Publication
|-- Section
|-- Image
|-- Image
|-- Section
|-- Image
|-- Section
|-- Image
|-- Image
|-- Image
我的模特:
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)
当Image
与Publication
相关时,我可以相对轻松地执行此操作,因为只有一个级别的嵌套。
当Image
属于Section
时,我不确定如何构建表单。
似乎没有简单的方法可以使用内联表单集来完成此操作。
有人可以帮忙吗?
答案 0 :(得分: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)