Как добавить встроенную заказываемую модель в фрагмент трясогузки?

Я хочу иметь возможность добавить встроенную заказываемую модель к фрагменту трясогузки. Приведенный ниже код дает мне сообщение об ошибке, в котором говорится, что я должен использовать ParentalKey для ClusterableModel. Пожалуйста, порекомендуйте.

@register_snippet
@python_2_unicode_compatible
class NavCategory(models.Model):
    title = models.CharField(max_length=200)

    panels = [
        FieldPanel('title'),
        InlinePanel('nav_item', label='Pages')
    ]

    def __str__(self):
        return self.title

    class Meta:
        verbose_name_plural = 'nav categories'
        ordering = ['title']


class NavItem(Orderable):
    category = ParentalKey(
        'core.NavCategory',
        related_name='nav_item'
    )
    link = models.ForeignKey(
        'wagtailcore.Page',
        null=True,
        blank=True,
        on_delete=models.SET_NULL,
        related_name='+',
    )

    panels = [
        PageChooserPanel('link')
    ]

    def __str__(self):
        return self.category.title + ' -> ' + self.nav_item.link

    class Meta(Orderable.Meta):
        verbose_name = 'Nav Item'
        verbose_name_plural = 'Nav Items'

1 ответ

Решение

NavCategory должен наследовать от modelcluster.models.ClusterableModel:

from modelcluster.models import ClusterableModel

class NavCategory(ClusterableModel):
    ...
Другие вопросы по тегам