怎么做网站注册登入页面,做g3云推广需要网站,大连网站建设报价,网络营销的应用在之前的写过的接口中#xff0c;我先后用了基于View和APIView来编写视图类
基于APIView类的时候相对于View会有很多便捷#xff0c;但其实drf还在APIView的基础上又封装了一个 GenericAPIView 类#xff0c;会大大减少了在编写视图时的重复代码和在修改代码时的工作量。 G…在之前的写过的接口中我先后用了基于View和APIView来编写视图类
基于APIView类的时候相对于View会有很多便捷但其实drf还在APIView的基础上又封装了一个 GenericAPIView 类会大大减少了在编写视图时的重复代码和在修改代码时的工作量。 GenericAPIView 允许你通过 queryset 和 serializer_class 属性来指定视图操作的数据集和序列化器。以便于在修改代码时不必要整篇修改。 lookup_field 和 lookup_url_kwarg 属性使得可以自定义如何通过 URL 参数来查找特定的模型实例。这为细节视图提供了灵活的查找机制。 order/views.py
from rest_framework.generics import GenericAPIView
from apps.order.models import Order
from apps.order.serializers import OrderSerializer
from utils import ResponseMessageclass OrderListGenericAPIView(GenericAPIView):serializer_class OrderSerializer # 指定序列化器类queryset Order.objects.all() # 获取查询集lookup_fields [user] # 告诉Drf在URL里用什么关键词来找到对应的数据记录get请求def post(self, request, *args, **kwargs):# print(self.get_queryset())# print(self.get_serializer())data request.data# print(data)order self.get_serializer(datadata)if order.is_valid(raise_exceptionTrue):# print(order.data)order.save()return ResponseMessage.OrderResponse.success(order.data)else:return ResponseMessage.OrderResponse.failed(order.errors)def get(self, request, user):# print(user)# 查询数据库所有数据# return ResponseMessage.OrderResponse.success(self.get_serializer(instanceself.get_queryset(), manyTrue).data)orders self.get_serializer(instanceself.get_queryset().filter(useruser), manyTrue)return ResponseMessage.OrderResponse.success(orders.data)order/urls.py
from django.urls import path
from apps.order import viewsurlpatterns [# path(list/, views.OrderListGenericAPIView.as_view(), nameorder_list),path(list/int:user/int:status, views.OrderListGenericAPIView.as_view(), nameorder_detail)
]若有错误与不足请指出关注DPT一起进步吧