Я проверил пакет, упомянутый @Makarand Bauskar.Однако я не был удовлетворен.Он не активен и использует собственный способ работы / работы с заголовком Last-Modified.Поэтому я решил создать новый пакет django-rest-framework-condition , который будет:
- Повторно использовать реализацию из Django
- , он получит исправления от Django
- Вы можете использовать его так же, как описано в Django документах
- Предоставить @last_modified и @etag decorator
Для установки:
pip install django-rest-framework-condition
Использование:
from django.contrib.auth import get_user_model
from rest_framework.viewsets import ViewSet
from rest_framework.response import Response
from rest_framework_condition import last_modified
def my_last_modified(request, *args, **kwargs):
return datetime(2019, 1, 1)
class SubscriptionViewSet(ViewSet):
@last_modified(my_last_modified)
def list(self, request):
data = {'user_count': get_user_model().objects.count()}
return Response(data)