簡體   English   中英

如何在自定義 wagtail 塊中使用功能標志?

[英]How can I use a feature flag within a custom wagtail block?

我正在做一個項目,我們想為 StreamBlock 添加一個新選項,但只有某些(付費)用戶可以使用該選項。 所以,理想情況下,我們希望將這個新選項放在功能標志后面。

我想用我們的代碼做的事情的一個非常簡化的版本如下所示:

class OneColumnBlock(StreamBlock):
    paragraph = ParagraphBlock()
    image = ImageBlock()
    if feature_flag_is_on_for_site:
        embed = CustomEmbedBlock(max_width=800)


class ScrollingExhibitPage(Page):
    body = StreamField(
        [("one_column", OneColumnBlock()), ("two_column", TwoColumnBlock()), ("full_width", FullWidthBlock())]
    )

    content_panels = Page.content_panels + [
        StreamFieldPanel("body", heading="Body"),
    ]

我們希望該embed選項僅對某些特定用戶可用。 如果embedbody處於同一級別,我想我可以弄清楚如何將它放在content_panels部分的標志后面,但由於它位於自定義StreamBlock內並且會影響數據庫設置,我不確定如何有效地做到這一點。

我們做這樣的事情 - 但在塊級別並且該功能在站點級別而不是用戶級別啟用。 代碼在我們的 wagtail-jetstream 存儲庫中。 Iframe 塊是必須“啟用”才能使用的塊。 我們的 FeatureCustomizedStreamBlock 的代碼是https://github.com/caltechads/wagtail-jetstream/blob/master/jetstream/blocks.py#L46

如果此方法聽起來有用,請隨時提出其他問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM