Python:Django {{}}タグとlayuiのlaytplテンプレートセパレータの競合解決方法

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>

 

おすすめ

転載: blog.csdn.net/weixin_38676276/article/details/107924536