Django admin 中的网页列表table,如何获取选中列表中的一行数据.
时间: 2024-03-27 15:35:02 浏览: 13
在Django admin中,选中列表中的一行数据可以通过以下方式获取:
1. 重载模板文件
在Django admin中,可以通过重载模板文件来自定义网页列表table中的行为。具体来说,在app的templates目录下,创建admin目录,并在其中创建一个名为modelname/change_list.html的文件,其中modelname是你想要自定义的模型的名称。
在这个自定义模板文件中,可以添加JavaScript代码,以便在用户选择一行数据时执行某些操作。可以使用jQuery库,通过以下方式获取选中的行数据:
```javascript
$(document).ready(function() {
$('tr').click(function(event) {
if (event.target.type !== 'checkbox') {
$(':checkbox', this).trigger('click');
}
});
$(':checkbox').click(function(event) {
event.stopPropagation();
});
});
```
这段代码将为每个列表行添加一个单击事件监听器,在单击行时触发复选框的单击事件,以便选中行。可以在复选框的单击事件中添加自定义JavaScript代码,以便获取选中行的数据。
2. 使用Django admin的JavaScript API
Django admin提供了一个JavaScript API,可以在自定义JavaScript文件中使用。这个API包括一个名为django.jQuery的jQuery实例,可以与Django admin的HTML元素进行交互。
可以使用以下代码获取选中行的数据:
```javascript
var selectedRows = django.jQuery('.action-checkbox:checked').closest('tr');
selectedRows.each(function() {
var rowData = {};
django.jQuery(this).find('td').each(function(i) {
rowData[django.jQuery('#result_list th').eq(i).attr('id')] = django.jQuery(this).text();
});
// 在这里处理选中行的数据
});
```
这段代码将获取所有选中的行,并将每行的数据存储在一个JavaScript对象中。可以在对象中添加自定义属性,以便在处理数据时使用。