python - 自定义 ViewSet 操作的 DRF 文档中的架构不正确
问题描述
我有这样的 ViewSet:
class CarViewSet(ModelViewSet):
"""
Работа пользователя с его машинами.
"""
serializer_class = CarSerializer
permission_classes = [IsUser]
filter_fields = '__all__'
ordering_fields = '__all__'
def perform_create(self, serializer):
serializer.save(user=self.request.user.useraccount)
def get_queryset(self):
return Car.objects.filter(user=self.request.user)
@action(methods=['POST'], detail=True)
def set_default(self, request, pk=None):
"""
Установить указанную машину по умолчанию
"""
car = get_object_or_404(self.get_queryset(), pk=pk)
car.is_default = True
car.save()
return Response()
在 rest_framework.documentation 页面中,我看到了“set_default”操作的这种形式:
问题是“set_default”实际上不需要提供所有这些字段,它只需要(并使用)id!
我能用这个做什么?
解决方案
如果您不需要在正文中发送这些数据,那么为什么不使用get
方法呢?
@action(methods=['GET'], detail=True)
def set_default(self, request, pk=None):
"""
Установить указанную машину по умолчанию
"""
car = get_object_or_404(self.get_queryset(), pk=pk)
car.is_default = True
car.save()
return Response({"updated":True})
推荐阅读
- spring - 来自 MongoDB java 驱动程序的“监控线程成功连接到服务器”的垃圾邮件日志
- docker - 如何将 docker 容器目录复制到 Google Compute Engine 实例
- python - 如何在python的不同模块中访问和更改变量的值?
- firebase - 压缩发送到 Firebase 函数的请求
- opentk - 使用 GL4 尝试使用 OpenTK 的矩阵的问题
- python - 下载 zip 文件而不从直接链接中提取
- swagger - 为什么 Swagger UI 发送 OPTIONS 请求方法而不是正确的方法,一旦我通过 Spring Gateway 访问它?
- ios - 评估数字的任何小数位并在 Swift 中将其更改为整数
- javascript - 我的网页什么也没有显示。没有 html、css 或图像,只是继续加载
- haskell - Haskell - 如何迭代到列表并保留原始列表而不仅仅是尾部