Wagtail / Django - 仅在OneToOneField中列出可用值

时间:2016-01-31 17:22:29

标签: python django django-models wagtail

我试图用我的Wagtail模型制作一个技巧。

我有两个型号。第一个是wagtail片段,第二个是wagtail Page模型。页面模型有一个OneToOneField,它引用了我的代码段模型。

简单示例:

@register_snippet
class MySnippet(models.Model):
    name = models.CharField(max_length=350)
    # stuff


class MyPage(Page):
    snippet = models.OneToOneField(
        'MySnippet',
        blank=True,
        null=True
    )

    content_panels = Page.content_panels + [
        FieldPanel('snippet')
    ]

我想要的是在创建新的MySnippet页面时,仅在wagtail管理中显示可用的MyPage值。

好吧,我只是试图隐藏不可用的东西。

任何想法?

非常感谢:)

2 个答案:

答案 0 :(得分:0)

假设您正在寻找从MySnippet中的值显示单个select的界面,您必须删除MySnippet周围的引号,这些引号会导致Django不将其视为相关模型:

    snippet = models.OneToOneField(
        MySnippet,
        blank=True
    )

IIRC,您还必须删除null=True。以下是一个完整的示例,以防您在代码段中未定义panels

https://github.com/FlipperPA/wagtailpress/blob/master/wagtailpress/models.py#L29

祝你好运!

答案 1 :(得分:0)

我认为I tackled this problem上的another question

用例有点不同,但基本上我们尝试实现同样的事情:只显示OneToOne关系另一端的可用(即非链接)项。