Django'Request'对象没有属性'user_id'

时间:2017-08-17 12:05:36

标签: python django routing django-rest-framework query-parameters

brew update && brew upgrade 我有:

urls.py
url(r'^dashboard/users/(?P<user_id>[0-9]+)/products/$', views.UserProductsList.as_view())

中的

views.py

我希望能够访问我的api:

http://localhost:8000/dashboard/users/10/products

应列出该用户的所有产品,

http://localhost:8000/dashboard/users/10/products/1

应返回user_id 10的product_id 1

如何实施此流程。

  

注意:我在此设置中使用Django rest框架

2 个答案:

答案 0 :(得分:5)

你可以做到

class UserProductsList(generics.ListCreateAPIView):
     def get_queryset(self):
         if self.kwargs['user_id']:
             return UserProducts.objects.filter(user_id=self.kwargs['user_id']).order_by('id')
         else:
             return UserProducts.objects.all().order_by('id')

参考doc

答案 1 :(得分:0)

请更新您的代码..

class UserProductsList(generics.ListCreateAPIView):
 def get_queryset(self):
     if self.request.user.id:
         return 

或者

class UserProductsList(generics.ListCreateAPIView):
 def get_queryset(self):
     if self.kwargs['user_id']:
         return