Таблицы данных| Django, сортировка, листание и поиск с помощью DRF

У меня есть Datatable, который отлично работает, и я хотел, чтобы Server-side процесс был истинным, а не клиентским. Но когда я включаю серверный процесс, сортировка, пагинация и поиск становятся ошибочными. TestCase: https://codepen.io/TheNerdy97/pen/gOvNeeo?html-preprocessor=pug

Я использую этот модуль https://github.com/izimobil/django-rest-framework-datatables. Для бесшовной интеграции между Django REST framework и Datatables.

Я сделал все, как сказано в документе, но он все равно не работает, как ожидалось.

models.py


from unittest.util import _MAX_LENGTH
from django.db import models

#from django.utils.translation import gettext as __



# Create your models here.

class Fresh(models.Model):
    code = models.CharField(("code"), max_length=255)
    orbs = models.IntegerField(("orbs"))
    orbs_display = models.CharField(('orbs_display'), max_length=255)
    price = models.IntegerField(("price"))
    price_display = models.CharField(('price_display'), max_length=255)
    images = models.CharField(("images"), max_length=10000000)
    date = models.CharField(("date"), max_length=255)


    class Meta:
        ordering = ['code', 'orbs', 'price']


    
    def __str__(self):
        return self.code

views.py

from django.shortcuts import render
from accounts.models import  Fresh, Orbs
from rest_framework import viewsets
from accounts.serializers import FreshSerializer
from django.core import serializers


# Create your views here.
def index (request):
    return render(request, 'index.html')

class FreshViewSet(viewsets.ModelViewSet):
    queryset = Fresh.objects.all().order_by('price')
    serializer_class = FreshSerializer




urls.py

import accounts
from . import views
from django.urls import path, include, re_path
from rest_framework import routers
from main import views
from rest_framework import routers


router = routers.DefaultRouter()
router.register(r'fresh', views.FreshViewSet)
router.register(r'orbs', views.OrbsViewSet)


urlpatterns = [
    path('', views.index, name='index'),
    path('fresh', views.fresh, name='fresh'),
    re_path('^api/', include(router.urls)),
]

Вернуться на верх