HTML テーブルに表示したい文字列項目の配列があり、テンプレートで最も簡単な方法は「メッセージ」フォームのようです。私はそれらを「活動」と呼んでいます。
{% if activities %}
<table class="activities">
<tr>
{% for activity in activities %}
<td>{{ activity }}</td>
{% endfor %}
</tr>
</table>
{% endif %}
アクティビティは配列を返す単純なタグである可能性があると考えましたが、他のスタックオーバーフローの回答 (以下にリンク) から、これは値を返すためではなく、テンプレートに配置する文字列を返すためであることがわかります。
この配列にコンテキストやパラメーターは必要ありませんが、ページごとに異なる形式で表示される可能性があるため、タグがテーブルの「innerHTML」を返すことは望ましくありません。
それ、どうやったら出来るの?私はエクストラファイルで次のことを試しました(そして、それが呼び出されていることを確認するために、意図的に構文エラーを挿入し、このページに移動したときにそれらがトリガーされたことを確認したので、それらを削除しました):
from django import template
register = template.Library()
@register.simple_tag
def activities():
return ("A", "B")
activities = register.simple_tag(activities)
また、デコレータだけで、「登録」の呼び出しだけで(戻り値の設定の有無にかかわらず)試してみましたが、どれも機能しませんでした。テーブルは常に空でした。
stackoverflow には関連する質問がたくさんありますが、それぞれがわずかに異なるケースに合わせて作成されているように見えます。また、inclusion_tag を使用した最も近い.