私はDjangoを初めて使用し、自分のWebサイト用のブログアプリを作成しようとしています。ブログ投稿を保存するために作成したモデルがあります。このモデルには、投稿本文のテキストフィールドが含まれ、TinyMCE(Grappelli経由)を使用して作成およびHTMLに変換されます。この投稿本文にカスタムテンプレートタグを埋め込み、データベースにテンプレートタグとして保存し、サイトで要求されたときにHTMLとしてレンダリングしたいと思います。これまでのところ、タグを適切にレンダリングすることができません。Djangoに投稿内のテンプレートタグを正しく解釈してレンダリングさせるにはどうすればよいですか?カスタムタグは、テンプレートに直接ロードして実装すると正常に機能します。問題が発生するのは、この間接的なロードだけです。ここでこのスニペットを試しましたが(編集:機能します。間違って実行しました!)、正しく機能しませんでした。
これが私の見解です:
from django.shortcuts import render_to_response
from myproject.apps.blog.models import Post
def blog_detail_view(request, year, month, day, slug):
selected_post = Post.objects.get(status=1, pub_date__year = year, pub_date__month = time.strptime(month, "%b")[1], pub_date__day = day, slug = slug)
return render_to_response('blog/detail.html', locals())
そして私のテンプレートの関連部分:
...
{% load my_custom_tag %}
<div class="entry">
{{ selected_post.body|safe }}
</div>
...
保存されたテキストの例を次に示しますPost.body
。
My first paragraph.
{% my_custom_tag var1 var2 %}
My second paragraph.
現在、これは次のようにレンダリングされます:
<p>My first paragraph.</p>
<p>{% my_custom_tag var1 var2 %}</p>
<p>My second paragraph.</p>
私がこのようなものが欲しいとき:
<p>My first paragraph.</p>
<p><a href="var1"><img src="var2"></a></p>
<p>My second paragraph.</p>