layuiを使用する場合は、layuiデータテーブルのテンプレートを使用する必要があります。このとき、{ {}}がエスケープするという問題が発生します 。djangoでは、{ {}}は変数値を取得することであり、これはlayuiのlaytplテンプレート区切り文字{ {}} [{ {}}はlaytplのデフォルトの区切り文字です]と競合します。
方法1:現在のページでlayuiテーブルを使用していない場合は、再定義セパレーターを使用できます
laytpl.config({
open: '<%',
close: '%>'
});
//分割符将必须采用上述定义的
laytpl([
'<%# var type = "公"; %>' //JS 表达式
,'<% d.name %>是一位<% type %>猿。'
].join('')).render({
name: '贤心'
}, function(string){
console.log(string); //贤心是一位公猿
});
方法2:現在のページがlayuiのテーブルを使用している場合、djangoは指定されたコンテンツを翻訳する必要はありません。
区切り文字はlayuiのデータテーブルコンポーネントのソースコードに記述されているため、区切り文字を再定義しないでください。laytpl.configでテンプレート区切り文字をカスタマイズしても問題を解決できません。
使用すると、文字化けした文字のペアがページに表示されます
{
{# if(d.data.toolbar){ }}
{
{# } }}
{
{# if(d.data.loading){ }}{
{# } }}{
{# var left, right; }}
{
{# layui.each(d.data.cols, function(i1, item1){ }}{
{# layui.each(item1, function(i2, item2){ }}{
{# if(item2.fixed && item2.fixed !== "right"){ left = true; } }}{
{# if(item2.fixed === "right"){ right = true; } }}{
{# var isSort = !(item2.colGroup) && item2.sort; }}{
{# }); }}{
{# }); }}
{
{# if(item2.type === "checkbox"){ }}{
{# } else { }}{
{item2.title||""}}{
{# if(isSort){ }}{
{# } }}{
{# } }}
{
{# if(item2.type === "checkbox"){ }}{
{# } else { }}{
{item2.title||""}}{
{# if(isSort){ }}{
{# } }}{
{# } }}
ありがとう:https://www.cnblogs.com/ligh-test/p/9838145.html
Django 1.5以降、{%verbatim%}タグがサポートされ(verbatimは文字通り翻訳された、文字通りを意味します)、Djangoはverbatimタグでラップされたコンテンツをレンダリングしません。
したがって 、{ {}}の前後に{%verbatim%}タグと{%endverbatim%}タグを追加するだけです 。
元のエラーコード:
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">{
{ d.name }} </a>
変更された実行可能コード:
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">{% verbatim %}{
{ d.name }} {% endverbatim %}</a>