[英]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
選項僅對某些特定用戶可用。 如果embed
與body
處於同一級別,我想我可以弄清楚如何將它放在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.