【发布时间】:2018-06-02 19:54:24
【问题描述】:
我正在通过 Django Rest Framework 创建一个通知应用程序,用户可以在前端使用 PATCH API 标记为已读通知。如何批量更新数据才能完成这项任务。
下面的这个序列化程序和视图集仅用于 PATCH 一个通知对象,但我想使用具有字段 is_read = False 的通知来完成这一切
用正确的方式编辑
我的序列化器:
class NotificationEditSerializer(ModelSerializer):
class Meta:
model = Notification
fields = (
'id',
'is_read'
)
我的视图集:
from rest_framework.response import Response
class NotificationListAPIView(ReadOnlyModelViewSet):
queryset = Notification.objects.all()
permission_classes = [AllowAny]
serializer_class = NotificationEditSerializer
lookup_field = 'id'
@list_route(methods=['PATCH'])
def read_all(self, request):
qs = Notification.objects.filter(is_read=False)
qs.update(is_read=True)
serializer = self.get_serializer(qs, many=True)
return Response(serializer.data)
我的网址:
from rest_framework import routers
router.register(r'notifications/read_all', NotificationListAPIView)
【问题讨论】:
标签: python django python-3.x django-rest-framework