【问题标题】:How can I add an inline orderable model to a Wagtail Snippet?如何将内联可订购模型添加到 Wagtail Snippet?
【发布时间】:2017-12-20 16:46:21
【问题描述】:

我希望能够将内联可订购模型添加到 Wagtail Snippet。下面的代码给了我一个错误,说我必须为 ClusterableModel 使用 ParentalKey。请指教。

@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'

【问题讨论】:

    标签: django-models wagtail wagtail-snippet


    【解决方案1】:

    NavCategory需要继承自modelcluster.models.ClusterableModel

    from modelcluster.models import ClusterableModel
    
    class NavCategory(ClusterableModel):
        ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-02
      • 1970-01-01
      • 2012-03-31
      相关资源
      最近更新 更多