2013-09-16 44 views
4

這甚至有可能嗎?Django Multiple嵌套內聯套件

我需要存儲一些文件作爲json/rest來檢索。

A 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,但我不確定如何構建表單。 看起來似乎沒有簡單的方法來使用內聯表單進行此操作。

任何人都可以幫忙嗎?

回答

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) 
+0

謝謝,hellsgate。我會檢查它。我的另一種選擇可能是製作一個''圖像'庫,它與'部分'分開。然後使用Javascript例程關聯'Image's。 –

+0

我已經添加了一個簡單的代碼示例,它將如何使用嵌套內聯。祝你好運兩種方式 – hellsgate

+0

我想我上週看着django-nested-inlines。事情是,我打算爲此做出自己的形式,而不是django-admin。 –