我有四个关系模型
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 :(得分:0)
看看S. Lott对各种django相关线程的睿智建议,我决定自己编写一个应用程序,而不是强迫django管理员做一些不应该做的事情。老实说,我只是为django下载了一个体面的CMS,但是我可以找到的那些很糟糕(他们的代码充满了类型检查,缩进标签等)或者不适用于1.2,所以我自己动手。< / p>