いくつかのテンプレートがデータベースの「テーマ」の一部として保存されているプロジェクトに取り組んでいます。このため、Django の優れたテンプレート レンダリング機能の多くをすぐに活用することができません。例えば:
# Instead of this...
return render_to_response('path/to/template', arguments, context_instance=context)
# Have to do this...
template = Template(model.template_field)
context.update(arguments)
return HttpResponse(template.render(context))
これは問題ありませんが、私が遭遇した問題はサブテンプレートを含めることです。例えばmodel.template_field
こんな感じだったら…
<html>
<head>
{% include head_extra %} <!-- Another DB field -->
</head>
<body>
{% include body_extra %} <!-- Another DB field -->
</body>
</html>
...すると、Django はテンプレートが存在しないと文句を言います (その名前のテンプレートがないため)。
動的に作成されたテンプレートにサブテンプレートを含めるにはどうすればよいですか?
編集 (データベースの制約を無視し、詳細を提供します):
ファイルのアップロードまたはエディターを使用して、ユーザーが独自のテンプレートを定義できるようにしたいと考えています。
経由でサブテンプレートをインクルードできるようにし{% include %}
たいのですが、ユーザーがどこからインクルードしているのか心配する必要はありません。したがって、次のように含めてほしいだけです: {% include extra_head %}
. ただし、django は、テンプレートをロードするために、テンプレートがどこにあるかを確実に知る必要があります。
django でユーザー定義のテンプレートが必要な場合、人々は通常何をしますか?