[英]Saving a StackedInline foreign keyed model before primary model in Django Admin
我有四種關系模型
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中的密鑰的鍵和page.text_fields中[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
時我掌握了所需的信息,但是將其覆蓋是正確的做法,或者是否有一些選項/方法可以更好地覆蓋我失蹤?
考慮到S. Lott對各種與Django相關的線程的明智建議,我決定自己編寫一個應用程序來執行此操作,而不是強迫django管理員執行原本不該執行的操作。 老實說,我只是為django下載一個不錯的CMS,但是我發現它們很爛(它們的代碼充斥着類型檢查,縮進制表符等)或在1.2上不起作用,所以我自己動手做。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.