2010-09-20 54 views
0

我有四個型號的關係Django中保存前主模型StackedInline外國鍵控型號聯繫

Model PagetTemplate(models.Model): 
    pass 

Model TextKey(models.Model): 
    page_template = models.ForeignKey(PageTemplate, related_name='text_keys') 


Model Page(models.Model): 
    page_template = models.ForeignKey(Pagetemplate, related_name='pages') 

Model Text(models.Model): 
    key = models.ForeignKey(TextKey, related_name='text_fields') 
    page = models.ForeignKey(Page, related_name='text_fields') 

的關係是這樣的:

      PageTemplate 
           /\ 
          /\ 
          / \ 
         TextKey  Page 
           \ /
           \/
           \/ 
           Text 

在對頁面的驗證(在clean方法),我檢查[page.page_template.text_keys中的鍵的鍵值]和[text_field.key for text_field in page.text_fields]是否匹配,以便所有文本鍵都填充到我的文本中。我遇到的問題是在調用clean時,page.text_fields爲空。管理代碼看起來像。

class TextInline(admin.StackedInline): 
    model = Text 
    extra = 0 

class PageAdmin(DebugModelAdmin): 
    inlines = [TextInline] 

admin.site.register(Page, PageAdmin) 

我在日誌類包裹admin.ModelAdmin知道我有我需要的時候ModelAdmin.add_view被調用,但這種壓倒一切正確的事情或者是有一些選項的信息/方法,這將是更好地重寫我丟了?

回答

0

看着S.洛特對各種django相關主題的睿智建議,我決定自己編寫一個應用程序來做這件事,而不是強迫django管理員去做一些本不該做的事情。老實說,我只是爲django下載了一個體面的CMS,但是我可以找到那些可以吸引人的CMS(他們的代碼充斥着類型檢查,縮進標籤等),或者不能在1.2上工作,所以我自己動手。