Registry /
web-framework / djangorestframework-datatables
Install & Compatibility
Where this runs
tested against v0.7.2 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.915 runs
installs and imports cleanly · install 0.0s · import 0.000s · 70.7MB
glibcpy 3.10–3.915 runs
installs and imports cleanly · install 3.6s · import 0.000s · 71MB
70MB installed
● package 70MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
DatatablesRenderer
✓ from rest_framework_datatables.renderers import DatatablesRenderer
✗ from rest_framework_datatables.renderers import DatatablesRenderer
This quickstart demonstrates the core configuration for `djangorestframework-datatables`. It involves adding `rest_framework_datatables` to `INSTALLED_APPS`, and configuring `DEFAULT_RENDERER_CLASSES`, `DEFAULT_FILTER_BACKENDS`, and `DEFAULT_PAGINATION_CLASS` in your `REST_FRAMEWORK` settings. An example Django model, DRF serializer, and ViewSet are provided, along with the necessary URL routing.
import os
import django
from django.conf import settings
from django.urls import path, include
from django.db import models
from rest_framework import serializers, viewsets, routers
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings')
# Minimal Django settings for demonstration
if not settings.configured:
settings.configure(
INSTALLED_APPS=[
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'rest_framework',
'rest_framework_datatables' # Add this line
],
DATABASES={'default': {'ENGINE': 'django.db.backends.sqlite3', 'NAME': ':memory:'}},
ROOT_URLCONF=__name__,
SECRET_KEY='a-very-secret-key',
REST_FRAMEWORK={
'DEFAULT_RENDERER_CLASSES': (
'rest_framework.renderers.JSONRenderer',
'rest_framework.renderers.BrowsableAPIRenderer',
'rest_framework_datatables.renderers.DatatablesRenderer', # Add this renderer
),
'DEFAULT_FILTER_BACKENDS': (
'rest_framework_datatables.filters.DatatablesFilterBackend', # Add this filter backend
),
'DEFAULT_PAGINATION_CLASS': 'rest_framework_datatables.pagination.DatatablesPageNumberPagination',
'PAGE_SIZE': 10,
}
)
django.setup()
# 1. Define a simple Django model
class Item(models.Model):
name = models.CharField(max_length=100)
value = models.IntegerField()
def __str__(self):
return self.name
# 2. Define a DRF Serializer
class ItemSerializer(serializers.ModelSerializer):
class Meta:
model = Item
fields = ['id', 'name', 'value']
# 3. Define a DRF ViewSet
class ItemViewSet(viewsets.ModelViewSet):
queryset = Item.objects.all()
serializer_class = ItemSerializer
# 4. Register the ViewSet with a router
router = routers.DefaultRouter()
router.register(r'items', ItemViewSet)
# 5. Define URL patterns
urlpatterns = [
path('api/', include(router.urls)),
]
# Example usage (simulate data and API call)
if __name__ == '__main__':
# Create some dummy data
Item.objects.create(name='Apple', value=10)
Item.objects.create(name='Banana', value=20)
Item.objects.create(name='Cherry', value=30)
print("Configuration done. Your API endpoint is '/api/items/'.")
print("To get Datatables-compatible output, append '?format=datatables'.")
print("Example API call: http://localhost:8000/api/items/?format=datatables")
print("Start a Django dev server and navigate to the URL to see output.")
# In a real Django project, you would run:
# python manage.py makemigrations
# python manage.py migrate
# python manage.py runserver
Upgrade
Version history
0.7.2latest on PyPI · released Jun 14, 2024
Audit
Dependencies
DjangorequiredCore framework dependency, version 3.2, 4.1, 4.2 supported.
djangorestframeworkrequiredCore REST framework dependency, version 3.14 supported.
django-filteroptionalOptional, for more fine-grained control over database queries and advanced filtering capabilities.