私はWagtailのブログ記事全体の単語数を取得するテンプレートタグを作成する方法が不思議です。私は周りを見回して、Pythonでいくつかの異なる方法を見てきましたが、与えられたビューはしばしば抽象化されています。多くの場合、作成者がカウントしたいかもしれないwagtailテンプレート(イントロ、ボディなど)に複数の部分が存在する可能性があるので、クエリがより複雑になるようです。表示Wordでのブログ投稿の投稿Wagtailで
これは管理者にはa nice packageがありますが、ユーザー側に表示したいと思います。
これは簡単な答えですが、まだWagtailのテンプレートに新しい変数を渡すことに慣れていません。
ありがとうございます!
おかげで単語数を得る。これは動作しますが、リッチテキストフィールドの長さを取得しようとすると奇妙なエラーが発生します。 ''RichText'オブジェクトには 'split'という属性はありません リッチテキストフィールドを繰り返して、何らかの理由でヘッダーと段落を探すべきでしょうか? –
ああ、申し訳ありません - そのエラーはStreamFieldのRichTextBlockから来ているようです。 'str(block.value)'を使って明示的に文字列に変換する必要があります。今更新されました... – gasman
こんにちは、ありがとうございました!誰かが将来これを見て、私は@ gasmanのスクリプトにいくつかの行を追加して、素早く単語を数え、スクリプトを読む時間を作った。 'DEF単語数(自己): \t \t self.body内のブロックのカウント= 0 \t \t: \t \t \t block.block_type場合== '導入' \t \t \t \tカウント+ = LEN(ブロック。 value.split()) \t \t \t ELIFのblock.block_type == 'コンテンツ': \t \t \t \t数+ = LEN(STR(block.value).split()) \t \t self.count =カウント \t \t戻りカウント \t DEF reading_time(自己): \t \t単語= self.count \t \t速度= 225 \t \t時間= math.ceil(単語/速度) \t \t復帰時間 ' –