在Django模板中使用{%include'includes / some.html'%}

时间:2018-08-19 19:43:55

标签: javascript html django django-templates

我有一个如下模板:-

<div class= "comment-form m-2">
{% include "includes/comment_reply_form.html" %}</div>

如果用户通过了身份验证,则html将显示表单。但是,如果用户未登录,我想显示一个“登录”按钮。我正在通过以下javascript处理相同的内容。

$(".comment-reply-btn").click(function(event){
      event.preventDefault();
      if (user_is_authenticated === false) {
          $(".comment-form").html('{% include "includes/reply.html" %}');
      $(this).parent().next(".comment-reply").fadeToggle();
      }

      else {
        $(this).parent().next(".comment-reply").fadeToggle();
      }

});

但是,它没有在网页中显示{%include“ includes / reply.html”%},而不是在reply.html中包含html。 javascript没有问题,如果我添加

<p> You need to Login </p>
在下面的行中

。效果很好:-

 $(".comment-form").html('{% include "includes/reply.html" %}');

但是,由于我的reply.html中需要更多选项,因此我希望将其添加为包含。我曾尝试在{前面使用转义字符“ /”,但这无济于事。

2 个答案:

答案 0 :(得分:0)

不熟悉,但是尝试

<div class= "comment-form m-2">
<script>
document.write('{% include "includes/comment_reply_form.html" %}')
</script>
</div>

答案 1 :(得分:0)

不是将包含值包含在javascript函数中,而是将其显示在html中,例如display = none

<div id="comment-reply-form-template">
  {% include "includes/comment_reply_form.html" %}

然后,在您的JavaScript中,您随时可以在需要时克隆已呈现的表单...

或者您可以制作一个自定义模板标签,该标签将以javascript字符串样式打印带有一堆''+''+''的html

或者可能会研究新的es6模板字符串 https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/template_strings

我认为会像

`{% include "includes/comment_reply_form.html" %}`

使用`字符