从行中提取值以在URL中使用

时间:2019-08-06 16:06:30

标签: javascript python datatables

我已经使用Datatables jquery插件生成了一个数据表。该表中填充了JSON。 我想在选择要在URL中使用时提取单元格值,但无法正常使用。

#I'm using django
import json

#my list
users = [[1,26,'John','Smith'],[2,33,'Dave','Johnson'],[1,22,'Aaron','Jones']]

#my json
user_json = json.dumps(users)
<table class="table table-striped- table-bordered table-hover table-checkable" id="user-table">
    <thead>
        <tr>
            <th>Age</th>
            <th>Record ID</th>
            <th>First Name</th>
            <th>Last Name</th>
            <th>Actions</th>
        </tr>
    </thead>
</table>

<script type="text/javascript">

var userData = {{user_json|safe}};

</script>
var SourceHtml = function() {

    var dataJSONArray = userData;

    var initTable1 = function() {
        var table = $('#user-table');

        // begin table
        table.DataTable({
            responsive: true,
            data: dataJSONArray,
            columnDefs: [
                {
                    targets: -1,
                    title: 'Actions',
                    orderable: false,
                    render: function(data, type, full, meta) {

//this is where I need help. I need for each a-tag to link to a django url pattern such as href="{% url 'users:select-user' id=id_value %}"

                        return '<a href="" class="btn btn-sm btn-clean btn-icon btn-icon-md" title="Select"><i class="la la-edit"></i></a>';
                    },
                },
            ],
        });
    };

    return {

        //main function to initiate the module
        init: function() {
            initTable1();
        }
    };
}();

jQuery(document).ready(function() {
    SourceHtml.init();
});

我需要每个标签中的href链接到Django URL模式,例如href =“ {%url'users:select-user'id = id_value%}”。但是,我无法从单元格中获取值。

1 个答案:

答案 0 :(得分:0)

数据表columns.render选项可用于访问当前行的完整数据源。

  

通过使用 columns.render作为函数类型,我们可以使用第三(3)   用于访问同一列数据的另一列索引的参数   来源。

var userData = [[1,26,'John','Smith'],[2,33,'Dave','Johnson'],[1,22,'Aaron','Jones']];

$('#example').dataTable( {
  "columnDefs": [ {
    "targets": -1,
    "data": null,
    "title": 'Actions',
    "render": function ( data, type, row, meta ) {
      return '<a href="'+row[0]+'">Download</a>';
    }
  } ]
} );