Di urls.py saya, saya memiliki:

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

Di 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')

Saya ingin dapat mengakses api saya seperti:

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

Harus mencantumkan semua produk dari pengguna tersebut, dan

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

Harus mengembalikan product_id 1 dari user_id 10

Bagaimana saya bisa menerapkan aliran ini.

Catatan: Saya menggunakan kerangka istirahat Django dalam pengaturan ini

1
Ishan Khare 17 Agustus 2017, 15:05

2 jawaban

Jawaban Terbaik

Anda dapat melakukan

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')

Lihat doc

5
itzMEonTV 17 Agustus 2017, 12:16

Harap perbarui kode Anda seperti ini..

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

Atau

class UserProductsList(generics.ListCreateAPIView):
 def get_queryset(self):
     if self.kwargs['user_id']:
         return 
3
Abin Abraham 17 Agustus 2017, 12:20