我对 Django 很陌生,正在尝试为我的网站构建一个博客应用程序。我创建了一个模型来存储博客文章,其中包括文章正文的文本字段,使用 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>