django中def不起作用
我定义了一个类,里面有一个get方法,当用户用get方法发送请求时,会执行这个方法(主要就是从数据可里面取出数据,然后进行一些修改再发给前端)。可是我试了一下,当用户发起get请求时,只会执行
queryset = Product.objects.all()
serializer_class = ProductSerializer
get的方法都没有执行,请问是怎么回事
## urls.py
router.register(r'getList', ProductListViewset)
## views.py
class ProductListViewset(viewsets.ModelViewSet):
queryset = Product.objects.all()
serializer_class = ProductSerializer
def get(self, request, format=None):
serializer = ProductSerializer
data = serializer.data
username = data.get('user_name')
user = User.objects.get(username__exact=username)
new_data = {
'id': data.get('id'),
'user_name': data.get('user_name'),
'user_image_URL': user.get('user_image_URL'),
'c_time': data.get('c_time'),
'goods_price': data.get('goods_price'),
'title': data.get('title'),
'description': data.get('description')
}
return Response(new_data, 200)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这个你要详细看一下 restfulframework的框架文档。
在modelviewset中已经封装好了各种http请求方法所对应的action的匹配,
而具体的匹配的规则就定义在routers模块的SimpleRouter类中
所以说回到你的问题,其实框架已经默认提供了路由以及action,你要做的是覆盖mixin中的方法来实现自定义(也就是自己的业务逻辑)
另外,从上面的code来看,
我觉得你对restfulframework并没有理解,
我建议你跟着官网上的例子,逐步学习,学习过程中问题再提出来,大家一起看。
https://www.django-rest-frame...