Server-side Datatable processing view mixin for Django
Project description
Django Serverside Datatable
This is a fork of Umesh Krishna's django-serverside-datable which was written for an older version of datatables. This updated version has been rewritten. Thanks to Umesh for the foundation to start from.
This is a package that let you use views with DataTables.net server-side processing in your Django Project.
Supports datatable features such as Pagination, Search, filtering, etc...
Install
pip install django-datatable-serverside-mixin
How to use
Create a django View that inherits from ServerSideDatatableMixin. Example (backend):
# views.py
from django_serverside_datatable_mixin.views import ServerSideDatatableView
class ItemListView(ServerSideDatatableView):
queryset = models.Item.objects.all()
columns = ['name', 'code', 'description']
# urls.py
# add the following line to urlpatterns
path('data/', views.ItemListView.as_view()),
Example (frontend):
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.12.1/css/jquery.dataTables.min.css"/>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/1.12.1/js/jquery.dataTables.min.js"></script>
</head>
<body>
<h1>Items</h1>
<hr>
<table id="items-table">
<thead>
<tr>
<th>Name</th>
<th>Code</th>
<th>Description</th>
</tr>
</thead>
<tbody></tbody>
</table>
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js"></script>
<script language="javascript">
$(document).ready(function () {
$('#items-table').dataTable({
serverSide: true,
sAjaxSource: "http://127.0.0.1:8000/data/", // new url
columns: [
{name: "name", data: 0},
{name: "code", data: 1},
{name: "description", data: 2},
],
});
});
</script>
</body>
</html>
The dataTables columns
option must be set in the dataTable initialization. Each column is required
to have a name coresponding to the views columns
array. Data can optionally be set to the same field values to add readable keys to the json responses.
For further customization of Datatable, you may refer the Datatable official documentation.
To Do:
- Implement global REGEX filtering
- Implement per column filtering
- Implement per column regex filtering
- Write tests
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for django_datatable_serverside_mixin-1.0.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 612300b04f04e8582e5e7d7027ffb179067d80059b3338edacf54130685f6d40 |
|
MD5 | 2af53fd19b1467128b3ef8c8c53ebcd9 |
|
BLAKE2b-256 | 807d015eb462e87b1d63719f2e678c23cd0b461aa78b03bac9b5671922118905 |
Hashes for django_datatable_serverside_mixin-1.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a3f5b32c8db9b70be67b48ea676bde5e927d34f310d59c25aa0cd458b75cf9ae |
|
MD5 | 89f00a56fc347d5d9e35b39a4a919ce7 |
|
BLAKE2b-256 | 6436545ddbeff84cda49337916fd0971b7b80aa1a0b33601c65f94ab3320ee46 |