Django“请求”对象没有属性“ user_id”

Ish*_*are 1 python django routing query-parameters django-rest-framework

在我的urls.py我有:

url(r'^dashboard/users/(?P<user_id>[0-9]+)/products/$', views.UserProductsList.as_view())
Run Code Online (Sandbox Code Playgroud)

views.py

class UserProductsList(generics.ListCreateAPIView):
     def get_queryset(self):
         if self.request.user_id:
             return UserProducts.objects.filter(user_id=self.request.user_id).order_by('id')
         else:
             return UserProducts.objects.all().order_by('id')
Run Code Online (Sandbox Code Playgroud)

我希望能够像这样访问我的api:

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

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

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

应该返回user_id 10的product_id 1

我如何实现此流程。

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

itz*_*nTV 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')
Run Code Online (Sandbox Code Playgroud)

参考文件