2016-12-30 93 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