假设我遵循了Django Rest Framework的ViewSet:
from django.contrib.auth import get_user_model
from rest_framework.viewsets import ViewSet
from rest_framework.response import Response
class SubscriptionViewSet(ViewSet):
def list(self, request):
data = {'user_count': get_user_model().objects.count()}
return Response(data)
如何与Django的last_modified
装饰器一起使用?还是如何实现这种功能?
答案 0 :(得分:0)
@jozo,
您可以检查https://github.com/jatir/django-rest-framework-last-modified django应用程序以使用上次修改的
编辑:
您可以在测试目录中查看示例 https://github.com/jatir/django-rest-framework-last-modified/blob/master/tests/views.py#L14
答案 1 :(得分:0)
我检查了@Makarand Bauskar提到的包裹。但是我不满意。它不是活动的,它使用自定义方式处理/修改Last-Modified标头。因此,我决定创建新的软件包django-rest-framework-condition,该软件包可以执行以下操作:
要安装它:
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)