擅长:python、mysql、java
<p>@knbk和@almalki在这里发布的两个答案都是我所问问题的有效途径。然而,他们并没有显示出我在调查了几个小时后实际上做了什么。</p>
<p>我最终使用的视图集允许我将<code>GET</code>、<code>POST</code>等请求绑定到视图集类中的某个函数。通常你会使用路由器来自动绑定所有合适的函数,但我希望它们的绑定方式更灵活一些,所以我自己写出来。</p>
<pre><code># views.py
class CartViewSet(ViewSet):
def clear(self, request):
"""Clear the users cart."""
queryset = Cart.objects.get(user=request.user)
queryset.clear_cart()
serializer = CartSerializer(queryset)
return Response(serializer.data, status=status.HTTP_200_OK)
clear_cart_viewset = CartViewSet.as_view({
'post': 'clear'
})
# urls.py
urlpatterns = patterns('app.views',
....
url(r'^cart/clear/$', 'clear_cart_viewset', name='clear_cart_api'),
....
)
</code></pre>