Как получить значение параметра Dajngo Rest Framework
Мне нужно значение параметра pk в классе представления , но он его не получает ,вывел к консоль значение pk
но оно равно None
. Запрос вот такой отправлял api/vds/some/5/
Как получить значение pk?
urls
urlpatterns = [
path('admin/', admin.site.urls),
path('api/vds/product/', ProductList.as_view()),
path('api/vds/category/', CategoryList.as_view()),
path('api/vds/maker/', MakerList.as_view()),
path('api/vds/some/<int:pk>/',GetSome.as_view()),
path('api/vds/productdetail/<int:pk>/', DetailProduct.as_view()),
]
views
class GetSome(generics.RetrieveUpdateDestroyAPIView):
serializer_class = ProductSerializer
def get_family_tree(self):
children = self.parent.all()
if not children:
return {'name': self.name, 'children': []}
return {
'name': self.name,
'categories': [self.get_family_tree(child) for child in children],
}
def get_queryset(self):
pk = self.request.data.get("pk")
print(pk)
categories = Category.objects.get(id=pk).get_family_tree(self)
return Product.objects.filter(category__parent__in=categories)
Serializer
class ProductSerializer(serializers.ModelSerializer):
class Meta:
model = Product
fields = ['id', 'name', 'description', 'category', 'maker']
depth = 2
Источник: Stack Overflow на русском