У меня есть четыре модели со связями
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
, но он отменяет это правильное действие илиесть какой-то вариант / метод, который будет лучше переопределить, что я пропускаю?