【问题标题】:Append table with Django URL tag JQuery使用 Django URL 标记 JQuery 附加表
【发布时间】:2022-01-25 06:00:58
【问题描述】:

我有一个要附加用户详细信息的表,并且想在该行中添加一个 Django URL 标记并获取标记中的主键。

类似这样的:

function putTableData(response) {
    let row;
    $("#table_body").html("");
    if (response["data"].length > 0) {
        $.each(response["data"], function (a, b) {
            row = `<tr>
                        <td>${b["first_name"]} ${b["last_name"]}</td                               
                        <td>${b["phone"]}</td>                   
                        <td>
                            <a onclick='console.log("${b["pk"]}")' data-url="{% url 'users:edit' user.${b["pk"]} %}">
                            </a>                     
                        </td>
                    </tr>`;

                $("#table_body").append(row)

onclick 控制台日志正在打印用户主键,但是当我尝试添加数据 url 标签时,我得到“无法解析剩余 ${b["pk"]}

我将如何进行这项工作?

【问题讨论】:

    标签: javascript jquery django ajax


    【解决方案1】:

    试试这个:

    $.each(response["data"], function (a, b) {
        data_url = "{% url 'users:edit' 1 %}".replace(1, b["pk"])
        row = `<tr>
                        <td>${b["first_name"]} ${b["last_name"]}</td                               
                        <td>${b["phone"]}</td>                   
                        <td>
                            <a onclick='console.log("${b["pk"]}")' data-url="+data_url+">
                            </a>                     
                        </td>
                    </tr>`;
    
        $("#table_body").append(row)
    });
    

    【讨论】:

    • 我试过了,但我得到了未捕获的语法错误。表格未加载。
    • 你能显示完整的错误并检查它发生在哪里吗?
    • Uncaught SyntaxError: missing ) 在参数列表之后。它发生在 data_url = "{% url 'users:edit' 1 %}".replace(1, ${b["pk"]})
    • data_url 变量中将${b["pk"]} 替换为b["pk"]
    • 用户现在加载到表中,但 data_url 变量没有传递给 data-url 。
    【解决方案2】:

    我能够解决:

    function putTableData(response) {
    let row;
    $("#table_body").html("");
    if (response["data"].length > 0) {
        $.each(response["data"], function (a, b) {
            row = `<tr>
                        <td>${b["first_name"]} ${b["last_name"]}</td                               
                        <td>${b["phone"]}</td>                   
                        <td>
                            <a data-url="/users/${b["pk"]}/edit">
                            </a>                     
                        </td>
                    </tr>`;
    
                $("#table_body").append(row)
    

    【讨论】:

    • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 1970-01-01
    • 2019-05-25
    • 2011-08-16
    • 1970-01-01
    • 1970-01-01
    • 2011-04-06
    • 1970-01-01
    • 2022-01-01
    • 2023-04-03
    相关资源
    最近更新 更多