[英]lookup_field Return None In Django get_queryset
I have a class extend with GenericAPIView ,我有一个用 GenericAPIView 扩展的类,
I Can access to the lookup_field in my functions, but I can't use it in the queryset function.我可以在我的函数中访问 lookup_field,但我不能在 queryset 函数中使用它。
class SellerItemAPIView(GenericAPIView, ListModelMixin):
serializer_class = ShopItemSerializer
permission_classes = [AllowAny]
lookup_field = 'phone_number'
def get_queryset(self):
print(self.lookup_url_kwarg) # It Return None
print(self.lookup_field) # It Return 'phone_number'
shop_items = ShopItem.objects.filter(Q(seller_id__user_id__phone_number=self.lookup_field))
return shop_items
def get(self, request, phone_number):
result = self.list(request, phone_number)
print(result.status_code)
return result
How Can I Access to the lookup_field in get_queryset ?如何访问 get_queryset 中的 lookup_field ?
I found the answer:我找到了答案:
Remove this line from class:从类中删除此行:
lookup_field = 'phone_number'
get the lookup_field in get_queryset, like this:在 get_queryset 中获取 lookup_field,如下所示:
phone_number = self.kwargs.get('phone_number')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.