首页 > 解决方案 > django:通过上下文字典将元素传递给我的模板

问题描述

在这种观点...

def home(request):
    context = {'page_title':'Volunteers', 'action':'<button class="btn btn-primary btn-small">Leave</button>'}
    return render(request, 'app/home.html', context)

我尝试通过上下文字典发送一个按钮元素(或其他一些 HTML)。我像这样将它添加到模板中

    <div class="row">
        <div class="col-md-6"><h4>{{page_title}}</h4></div>
        <div class="col-md-6 text-md-right mt-1">{{action}}</div>
    </div>

当页面呈现时,它只显示文本并且不允许它是 HTML。 看法

知道如何将其视为 HTML 吗?

谢谢,这里的Django初学者终于来自黑暗面(PHP)=)

标签: django

解决方案


将字符串标记为HTML 安全

{{page_title | safe}}

更多关于 Django 中自动 HTML 转义的信息可以在这里找到。

但是,我更喜欢另一种解决方案,其中按钮在模板中进行描述,并在需要时有条件地呈现,如果它是少数可能的操作之一并且它们都在一个地方。如果在多个地方都需要按钮,我会使用自定义 Django 模板标签。从业务代码中发送 HTML 通常违反了代码和表示分离的原则。


推荐阅读