【发布时间】:2020-10-01 13:06:41
【问题描述】:
我想创建一个订单并订购商品。 为此,我只是使用 CreateApiView 在views.py 中创建新的模型对象,但我收到错误提示应该包含“Serializer_class”,但我不需要序列化程序。
//views.py
class CreateOrder(CreateAPIView):
def Post(self,request):
header_token = request.META.get('HTTP_AUTHORIZATION', None)
print(header_token)
access_token = header_token.split(' ')[1]
status,user = validate_token(access_token)
cart=Cart.objects.get(user=user)
print(cart)
if cart:
total=cart.total
userprofile=UserProfile.objects.get(user=user)
order,created=Order.objects.get_or_create(billing_profile=userprofile,total=total)
cart_items=CartItem.objects.get(cart=cart)
print(cart_items)
for item in cart_items:
itemid=item.item_id
qty=item.quantity
item_instance = Items.objects.get(item_id=item)
order_item,created = OrderItems.objects.get_or_create(order=order, product=item_instance,quantity=qty)
order.save()
order_item.save()
if created:
item.delete()
return Response (status=rt_status.HTTP_200_OK)
我想了解如何使用或不使用序列化程序来实现这一目标
【问题讨论】:
-
您应该能够通过扩展
ApiView类而不是CreateAPIView类来解决此问题,您的方法名称也应为post注意:全部小写。你可以阅读更多关于here
标签: django django-rest-framework django-serializer django-rest-viewsets