オンページナビゲーションのためにサイドバーのナビゲーション付きの長いスクロールページを作成する必要があります。これは、各見出しにIDが付くことを意味します。ストリームフィールドレベルで検証して、ユーザーが重複したIDを入れないようにすることはできますか?ストリームフィールドに重複がないことを確認します
編集:
見出しは、次のような定義されています。
class HeadingOneBlock(blocks.StructBlock):
id = blocks.RegexBlock(regex=r'^\S*$', help_text='No spaces or special characters')
heading = blocks.CharBlock()
class Meta:
template = 'base/heading_one.html'
icon = 'title'
label = 'h1'
とページ:
class LongScrollPage(Page):
banner_text = RichTextField()
description = RichTextField()
body = StreamField([
('heading1', HeadingOneBlock()),
('heading2', HeadingTwoBlock()),
('paragraph', blocks.RichTextBlock(features=['bold', 'italic', 'ol', 'ul', 'link', 'image', 'hr'])),
('collapsible_panel', CollapsiblePanelBlock()),
('table', TableBlock(template='base/tables.html')),
], blank=True, null=True)
content_panels = Page.content_panels + [
FieldPanel('banner_text'),
FieldPanel('description'),
StreamFieldPanel('body'),
]
は '身体' レベルで検証する方法はありますか?私はブロックレベルで検証することができますが、どのようにidsが一意であることを確認するのですか?
ます。たとえば、この質問に少しより多くの情報を入れてもらえますが、これまで使用しているコードを使用して、BakeryDemo、セキレイ1.13でこれをテストしています。 –