Wagtail CMS(Django) - Отображение полей встроенной модели в связанной модели
У меня есть две пользовательские модели (не наследующиеся от Page), которые предназначены для администратора на сайте Wagtail CMS. Я могу заставить их работать в обычном Django, но в Wagtail я не могу заставить отображаться встроенные поля модели. Я получаю key error. Код...
On model.py:
from django.db import models
from wagtail.admin.panels import (
FieldPanel,
MultiFieldPanel,
FieldRowPanel,
InlinePanel,
)
from author.models import Author
class Book(models.Model):
author = models.ForeignKey(Author, on_delete=models.CASCADE)
date = models.DateField("Date released")
panels = [
MultiFieldPanel([
InlinePanel('book_review'),
], heading="Book reviews"),
]
class BookReview(models.Model):
book = models.ForeignKey(
Book, on_delete=models.CASCADE, related_name='book_review')
title = models.CharField(max_length=250)
content = models.TextField()
panels = [
FieldRowPanel([
FieldPanel('title'),
FieldPanel('content'),
])
]
и wagtail_hooks.py:
from wagtail.contrib.modeladmin.options import (
ModelAdmin,
modeladmin_register,
)
from .models import Book, BookReview
class BookAdmin(ModelAdmin):
model = Book
add_to_settings_menu = False
add_to_admin_menu = True
inlines = [BookReview] # only added this after key error, but it didn't help
modeladmin_register(BookAdmin)
Как я могу заставить строку InlinePanel('book_review'), отображаться в админке. Все работает, пока я не попробую добавить встроенные поля модели.
Я искал в интернете, и там упоминался сторонний пакет Django modelcluster. Это все еще требуется? Те сообщения были довольно старыми (5 лет или около того). Или вместо ForeignKey использовать ParentalKey, но это только если наследоваться от Page model.
Попробуйте изменить модель Book, чтобы она наследовалась от ClusterableModel (которая сама наследуется от models.Model)
from modelcluster.models import ClusterableModel
class Book(ClusterableModel):