代码之家  ›  专栏  ›  技术社区  ›  LazerFriends

wagtail:pagechooserpanel未显示

  •  0
  • LazerFriends  · 技术社区  · 7 年前

    我正在尝试将PageChooserPanel添加到相关链接模型中,但它未显示在管理员中。我在迁移或加载页面时没有错误。代码如下:

    sua_base/models.py版本:

    class RelatedLinks(models.Model):
    
        page = models.ForeignKey(
            'wagtailcore.Page',
            null=True,
            blank=True,
            on_delete=models.SET_NULL,
            related_name='+',
        )
    
        title = models.CharField(max_length=255, blank=True)
        url = models.URLField("Embed URL", blank=True)
    
        panels = [
            FieldPanel('title'),
            PageChooserPanel('page'),
            FieldPanel('url'),
        ]
    
        class Meta:
            abstract = True
            verbose_name = "Related Link"
            verbose_name_plural = "Related Links"
    

    app/models.py版本:

    from sua_base.models import WebPage, Section, RelatedLinks
    
    class SUAWebPage(WebPage):
    
            sidebar_content_panels = [
                InlinePanel('related_links', label="Related Links")
            ]
    
            edit_handler = TabbedInterface([
                ObjectList(content_panels, heading='Content'),
                ObjectList(sidebar_content_panels, heading='Sidebar'),
                ObjectList(WebPage.settings_panels, heading='Settings', classname="settings"),
                ObjectList(Page.promote_panels, heading='Promote'),
            ])
    
            class Meta:
                verbose_name = "SUA Web Page"
                verbose_name_plural = "SUA Web Pages"
    
    
        class SUAWebPageRelatedLinks(RelatedLinks, Orderable):
            page = ParentalKey(SUAWebPage, related_name='related_links')
    

    其他两个字段( title url )很好,只是PageChoosePanel不见了。

    1 回复  |  直到 7 年前
        1
  •  1
  •   gasman    7 年前

    这是失败的,因为你用的是这个名字 page 对于两个 ForeignKey 到你链接到的页面 RelatedLinks )和 ParentalKey 指向包含页(在 SUAWebPageRelatedLinks )中。你需要重新命名其中一个。