2016-02-24 93 views
2

我有這樣一個模型:Django管理內嵌有任何外鍵關係

class Category(models.Model): 
    name = models.CharField(max_length=100) 
    description = models.TextField() 
    thumbnail = models.ForeignKey(MediaFile) 

    def __unicode__(self): 
     return self.name 

這裏我有thumbnail外鍵MediaFile

我想擁有InlineCategory模型。

我已經這樣做了:

class MediaInline(admin.StackedInline): 
    model = MediaFile 
    extra = 0 
    max_num=0 

class CategoryAdmin(admin.ModelAdmin): 
    list_display = ('name',) 
    inlines = [ MediaInline, ] 

admin.site.register(Category, CategoryAdmin) 

它不發生的事情。這裏我假設有MediaFile內嵌到Category。這裏有什麼問題?

+0

你有'max_num = 0' –

+1

那不是問題..它給我media.MediaFile沒有外鍵到category.Category,但我有MediaFile作爲外鍵到類別。當我列出foreignkey時,它應該將MediaFile作爲Inline – gamer

回答

1

您不能以這種方式設置內聯,因爲類別實例將保存在MediaFile之前。然而,Django無法設置Category.thumbnail而MediaFile沒有保存。

例如,您應該有CategoryInlineMediaFileAdmin

2

你的外鍵是錯誤的方式。如果您想在一個類別中使用多個媒體文件,則fk需要位於MediaFile模型上。這種方式內聯將工作。