【发布时间】:2010-09-20 20:05:05
【问题描述】:
我有四个具有关系的模型
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 方法中),我检查 [key for key in 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 被调用时我有我需要的信息,但是覆盖这是正确的事情,或者是否有一些选项/方法会更好地覆盖它我迷路了?
【问题讨论】:
标签: python django django-models django-admin