在Django模板中将一些文本替换为粗体

时间:2018-10-10 04:35:26

标签: python django replace django-templates

我有一个变量

to_timestamp('14/03/18 07:46:33,573000000','DD/MM/RR HH24:MI:SSXFF')

to_timestamp('14/03/18 08:45:34,342000000','DD/MM/RR HH24:MI:SSXFF')

to_timestamp('04/01/18 18:15:08,119000000','DD/MM/RR HH24:MI:SSXFF')
在视图中

。我想将GETDATE() GETDATE() GETDATE() 替换为粗体。像这样:

var images=['http://www.planwallpaper.com/static/images/stunning-images-of-the-space.jpg',
            'https://www.nasa.gov/sites/default/files/styles/image_card_4x3_ratio/public/thumbnails/image/pia20645_main.jpg?itok=dLn7SngD',
            'http://24space.ru/uploads/posts/2014-12/1418220047_asteroid.jpg',
            'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcT-1jIpSolSoVubMTdKYhIJyQxqEOK66TT01y2PJXrddMsPz2dx'];
var url=0;
setInterval(function(){
   url+=1;
  if(url==4){
    url=0;
  }
  document.body.style.backgroundImage = 'url('+images[url]+')';
  document.body.style.backgroundRepeat = "no-repeat";
},5000);

如何在Django模板中处理该变量?

2 个答案:

答案 0 :(得分:0)

很显然,**不会在模板中使用粗体字符串,您将很难尝试通过模板中的适当的开始和结束标记来替换这些标记,例如通过自定义过滤器。但是,您可以通过在视图中应用必要的HTML和marking it safe来使其在视图中变为粗体:

# views.py
from django.utils.safestring import mark_safe

# in your view
# ...
text = "replace some word"
# add the appropriate html tags
text = text.replace('some', '<strong>some</strong>')
# now you have to mark it as safe so the tags will be rendered as tags
text = mark_safe(text)
# ...
return render(reqest, template, {.., 'text': text, ...})

现在,您可以通过{{ text }}

在模板中像普通变量一样使用它

答案 1 :(得分:0)

您可以创建自定义模板标签来呈现这些类型的东西。您必须编写一些额外的代码行。但是一旦完成,每次使用替换功能都是可重用的,并且不会那么乏味。

创建一个名为 mytags.py 的自定义标签/过滤器文件,您的应用布局可能如下所示:

myapp/
    __init__.py
    models.py
    templatetags/
        __init__.py
        mytags.py
    views.py

写入 mytags.py

from django import template

register = template.Library()

def bold(text):
    return text.replace('**','<strong>',1).replace('**','</strong>',1)

register.filter('bold', bold)

在模板中,首先加载自定义标记文件:

{% load mytags %}

将此自定义标签应用于文本:

{{ text|bold }}

以供参考:https://docs.djangoproject.com/en/2.1/howto/custom-template-tags/