Skip to main content
# Django Datatables server processing
Lightweight Django class for a full Datatables server processing implementation.

https://datatables.net/examples/data_sources/server_side.html

After hanging around for a good integration of Datatables server processing in Django, I tested the things I found on internet but they all have the same problem, they cannot manage the ForeignKey relations as well. After all, I made it by myself.

This code was tested on Datatables 1.10.+ and Django 1.10.+.

To get it works just put datatables in your html template, like this:

```html
<!-- jQuery -->
<script src="/statics/js/vendors/jquery/dist/jquery.min.js"></script>
<!-- Datatables -->
<script src="/statics/js/vendors/datatables.net/js/jquery.dataTables.js"></script>

<!-- Datatables -->
<script>
$(document).ready(function() {

$('.datatable-responsive-serverside').DataTable({

"aLengthMenu": [
[25, 50, 100, 500, ], // -1],
        [25, 50, 100, 500, ] //"All"]
],
    "paging": true,
    "responsive": true,
    "processing": true,
    "serverSide": true,
    "ajax": "{% url 'appnamespace:viewname_json' %}",
// POST METHOD EXAMPLE HERE
    //~ "ajax": {
                 //~ url: "{% url 'appnamespace:viewname_json' %",
                 //~ method: 'post',
                 //~ data: function(args) {
                   //~ return {
                     //~ "args": JSON.stringify(args)
                   //~ };
                 //~ }
               //~ },
       });
       
   });
   </script>
```

Requirements
------------

Download your preferred DataTables release from [here](https://datatables.net/download/).

Setup and examples
------------------
Install package in your Python environment.
````
pip install git+https://github.com/peppelinux/django-datatables-ajax.git
````

Create a view
````
from django.conf import settings
from django.contrib.auth.decorators import login_required
from django.db.models import Q
from django.http import HttpResponse, Http404
from django.http.response import HttpResponseRedirect
from django.http import JsonResponse

from .datatables import DjangoDatatablesServerProc

@login_required
def datatable_data(request):
radcheck = get_radcheck_active(request)
radius_accounts = _get_radius_accounts(request, radcheck)

model = RadiusPostAuth
columns = ['pk', 'username', 'reply', 'calling_station_id', 'date']

base_query = model.objects.filter(username__in=[i.username for i in radius_accounts]).exclude(calling_station_id='').order_by('-date')

class DTD(DjangoDatatablesServerProc):
def get_queryset(self):
if self.search_key:
self.aqs = base_query.filter(
Q(username__icontains=self.search_key) | \
Q(reply__icontains=self.search_key) | \
Q(calling_station_id__icontains=self.search_key))
else:
self.aqs = base_query.filter(username=radcheck.username)


dtd = DTD( request, model, columns )
return JsonResponse(dtd.get_dict())
````

Create an url resource
````
from django.conf.urls import include, url
from django.contrib.auth.decorators import login_required

from .views import *

urlpatterns = [
url(r'^datatable.json$', login_required(StatoUtenzaCorso_DTJson), name='datatable_json'),
]
````


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-datatables-ajax-0.8.tar.gz (4.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_datatables_ajax-0.8-py3-none-any.whl (5.4 kB view details)

Uploaded Python 3

File details

Details for the file django-datatables-ajax-0.8.tar.gz.

File metadata

  • Download URL: django-datatables-ajax-0.8.tar.gz
  • Upload date:
  • Size: 4.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.9.1 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.5.2

File hashes

Hashes for django-datatables-ajax-0.8.tar.gz
Algorithm Hash digest
SHA256 b77de960eb311c4603f3c34bd0b4e4486ae6be1c0f7e32fa5333390b3a667c84
MD5 412dfd118f1c7b14fc3bcdc9b466005e
BLAKE2b-256 c8c0ac4d0f9d400234e2db6628816c3c771ce436507ee69dae6e78578c49abf2

See more details on using hashes here.

File details

Details for the file django_datatables_ajax-0.8-py3-none-any.whl.

File metadata

  • Download URL: django_datatables_ajax-0.8-py3-none-any.whl
  • Upload date:
  • Size: 5.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.9.1 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.5.2

File hashes

Hashes for django_datatables_ajax-0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 7344dcce2d16839dc1cc6fe29652f322ab85b0121f3a587a5fc0244bdb29b922
MD5 e0cda25a5e36180490ffcdf8a48bbcd9
BLAKE2b-256 2e1991921a4aa1410e3294a872e43e1c5f8e63ab6dc933b7cec31b80bf795669

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.8 This release

2 files

0.6

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page