2016-12-30 92 views
0

我正在尝试将URL传递给“用户名”,用户在该用户上单击,弹出一个模式,显示可以输入/查看相关信息的表单给那个特别的客人。我尝试过使用渲染功能,但没有取得太大的成功。如果我纯粹在Django中完成此操作,则需要相当于{%'命名空间:guest_data_form'guest.pk%},它将调用一个视图来呈现模式中的表单。我将如何在数据表中完成相同的操作?在Datatables中传递URL Django模式列

<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> 

回答

1

Datatables允许您为“data”的值定义一个函数。所以,你可以替换{"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'); 
} 

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

查看更多这里:https://datatables.net/reference/option/columns.data