【问题标题】:Passing URL Django Pattern in Datatables Column在数据表列中传递 URL Django 模式
【发布时间】:2017-05-14 23:33:15
【问题描述】:

我正在尝试将一个 url 传递给“客人姓名”,用户点击该用户时会弹出一个模式,显示一个表单,您可以输入/查看与该特定客人相关的信息。我试过玩弄渲染功能,但没有取得太大的成功。如果我要纯粹在 Django 中执行此操作,我会想要 {% 'namespace:guest_data_form' guest.pk %} 的等价物,它会调用视图以在模态中呈现表单。我将如何在数据表中完成相同的任务?

<script type="text/javascript" language="javascript" class="init">
     $(document).ready(function() {
         $('#example').DataTable( {
             autoWidth: true,
             ajax: {
                 url: "{% url 'guest_data_api' guest.id %}"
             },
             columns: [
                 { "data" : "Room Number" },
                 { "data" : "Occupancy" },
                 { "data" : "Guest Name" },
                 { "data" : "Check In" },
                 { "data" : "Check Out" }
             ],
             "columnDefs": [
                 { "width": "15%", "targets": 2 }
             ]
         } );
     } );
</script>

【问题讨论】:

    标签: javascript jquery python django datatables


    【解决方案1】:

    Datatables 允许您为“数据”的值定义一个函数。因此,您可以将{"data" : "Guest Name"} 替换为:

    "data": function (row) {
        var $a = $('<a></a>').attr('href', row.guest_name.link).text(row.guest_name.text);
        return $a.prop('outerHTML');
    }
    

    这假设您将 guest_name 列替换为具有链接/文本属性的 json 对象。如果您知道保持数据表/js 端更简单是安全的,您也可以将链接作为转义的 javascript 字符串传递。

    在此处查看更多信息:https://datatables.net/reference/option/columns.data

    【讨论】:

      猜你喜欢
      • 2016-07-26
      • 2018-07-07
      • 2021-01-09
      • 2020-09-19
      • 2019-06-25
      • 2016-05-30
      • 2015-11-18
      • 1970-01-01
      • 2017-08-11
      相关资源
      最近更新 更多