写真をブログの投稿に埋め込むカスタムphotoBlockを作成しました。私はデータベースに格納されているすべてのphotoBlockを取得できるテンプレートタグを作成しようとしています.Wagtailのクエリページとほとんど同じです。私は、写真ごとに別々のページを作成する必要はなく、できる限りテンプレートタグを使って別のページに表示できるようにしたいと考えています。特定のタイプのすべてのStreamFieldブロックを取得
class photoBlock(blocks.StructBlock):
date = blocks.DateBlock("Date Image Was Taken")
location = blocks.CharBlock(max_length=100)
image = ImageChooserBlock()
latitude = blocks.DecimalBlock(max_digits=9, decimal_places=6)
longitude = blocks.DecimalBlock(max_digits=9, decimal_places=6)
description = blocks.RichTextBlock()
私は仕事に以下を得ることができるけど、クエリは非常に重いと私はポストの束を持ってたら行き詰まるますようにそれは感じています。
for page in BlogPage.objects.all():
for block in page.body.stream_data:
if block['type'] == 'photoBlock':
return block
Streamfieldから特定のブロックを照会する方法はありますか?いつでも私は、私はいつもphotoBlockは、属性オブジェクトを持っていないというエラーレスポンスを取得し、この
photoBlock.objects.all()
のようなものを試してみてください。何か案は?
お返事ありがとうございました。私のモデルをより良く構築するための提案はありますか?私が持っている1つのアイデアは、各写真のページモデルを作成し、PageChooserBlockなどで埋め込むことです。 –