Django:在模板内编写JavaScript与加载JavaScript

Django:在模板内编写JavaScript与加载JavaScript,javascript,django,django-templates,Javascript,Django,Django Templates,我正在使用JavaScript添加注释,而不刷新页面。当我在模板内使用JavaScript时,它工作得非常好,但是如果我将JavaScript写入文件并在模板内加载文件,则它不会显示编写注释的人的姓名(它会显示注释)。下面是我在模板中使用的JavaScript: function create_comment(event,div_id,form_id,commentinsert_id) { event.preventDefault(); var text_id = '#'.con

我正在使用JavaScript添加注释,而不刷新页面。当我在模板内使用JavaScript时,它工作得非常好,但是如果我将JavaScript写入文件并在模板内加载文件,则它不会显示编写注释的人的姓名(它会显示注释)。下面是我在模板中使用的JavaScript:

function create_comment(event,div_id,form_id,commentinsert_id) {
    event.preventDefault();
    var text_id = '#'.concat(div_id,' ','#comment-text')
    var slug_id = '#'.concat(div_id,' ','#post_slug')
    var appenddiv_id = '#'.concat(div_id)
    comment_count ++;
    var divcommentinsert_id = 'inserted_comment-'.concat(comment_count.toString())
    $.ajax({
        url : "create_comment/", // the endpoint
        type : "POST", // http method
        data : { text : $(text_id).val(), post_slug: $(slug_id).val(),},
        // handle a successful response
        success : function(json) {
            div.innerHTML = `
                <div id = `+divcommentinsert_id+` class="card-footer">
                <div class="row">
                <div>
                <img src="{{user.profile.profile_picture.url}}" alt="" width="40" height="40">
                </div>
                <div class="col-md-8">
                <b style="color:rgb(240, 0, 0);"> {{user.first_name}} {{user.last_name}}</b>
                <br>
                `+json.text+`
                <a onClick="edit_comment('`+json.slug+`','`+divcommentinsert_id+`','`+json.text+`')"><i class="fa fa-edit"></i></a>
                <a onClick="delete_comment('`+json.slug+`','`+divcommentinsert_id+`')"><i class="fa fa-trash-o"></i></a>
                </div>
                </div>
                </div>`;
            document.getElementById(commentinsert_id).appendChild(div);
            document.getElementById(form_id).reset();
        },
        // handle a non-successful response
        error : function(xhr,errmsg,err) {
            $('#results').html("<div class='alert-box alert radius' data-alert>Oops! We have encountered an error: "+errmsg+
                " <a href='#' class='close'>&times;</a></div>"); // add the error to the dom
            console.log(xhr.status + ": " + xhr.responseText); // provide a bit more info about the error to the console
        }
    });
};
函数create\u comment(事件、div\u id、表单\u id、commentinsert\u id){
event.preventDefault();
var text_id='#'.concat(div_id',','#comment text')
变量slug_id='#'.concat(div_id','#post_slug')
var appenddiv_id='#'.concat(div_id)
注释_count++;
var divcommentinsert_id='inserted_comment-'.concat(comment_count.toString())
$.ajax({
url:“创建注释/”,//端点
类型:“POST”//http方法
数据:{text:$(text_id).val(),post_slug:$(slug_id).val(),},
//处理成功的响应
成功:函数(json){
div.innerHTML=`
{{user.first{u name}{{user.last{u name}}

`+json.text+` “”;//将错误添加到dom中 log(xhr.status+“:“+xhr.responseText);//向控制台提供有关错误的更多信息 } }); };

在上面的代码中,
{{user.first{name}}{{user.last{name}}
用于显示姓名。它显示添加注释的人的姓名,但当我将相同的函数复制到comments.js文件并像
那样加载文件时,它不会显示姓名,而是显示{user.first{name}{{user.last_name}。我在几个页面中使用此javascript,我认为最好是写入文件并加载文件,而不是在每个页面中写入相同的脚本。有人能帮我吗?

{dictionary.key}
,模板中的变量是如何与django模板引擎一起使用的

静态javascript文件不是模板。django模板引擎不会处理它

将所需的值放入html(通过模板引擎),从JS访问它们

基本思想:

  • 创建一个JS变量(例如:
    var user\u full\u name=“{{user.user\u name}}{{user.last\u name}}”
    ),在ajax成功回调中使用
    user\u full\u name

  • 将值放入一些html元素(例如:
    )中,并使用JS/jQuery
    $(“#user_name”).val()获取它


编辑:在
用户全名
声明中添加了缺少的结束双引号。

{{dictionary.key}}
等模板中的变量是如何与django模板引擎一起使用的

静态javascript文件不是模板。django模板引擎不会处理它

将所需的值放入html(通过模板引擎),从JS访问它们

基本思想:

  • 创建一个JS变量(例如:
    var user\u full\u name=“{{user.user\u name}}{{user.last\u name}}”
    ),在ajax成功回调中使用
    user\u full\u name

  • 将值放入一些html元素(例如:
    )中,并使用JS/jQuery
    $(“#user_name”).val()获取它

编辑:在
user\u full\u name
声明中添加了缺少的结束双引号