![](/img/trans.png)
[英]How to access to URL parameter inside of get_queryset in Django?
[英]How to pass parameter to get_queryset in Django
我有内置的 Django API,我有返回所有对象的端点。 我希望用户为我提供关键字来过滤这个查询集。 最好的方法是什么。 以及如何做到这一点?
它在 get_queryset 中吗? 如果是,你能帮我吗!?
您可以使用self.request.GET
[Django-doc]访问 GET 参数(在querystring 中)。
因此,例如,如果有一个参数?category=foo
,您可以使用self.request.GET['category']
或self.request.GET.get('category')
访问 foo 如果您希望它返回None
如果它丢失了。
因此,您可以过滤,例如:
from rest_framework import generics
from app.models import SomeModel
from app.serializers import SomeSerializer
class UserList(generics.ListAPIView):
model = SomeModel
def get_queryset(self):
qs = super().get_queryset()
category = self.request.GET.get('category')
if category is None:
return qs
return qs.filter(category=categry)
只需传递带有一些默认值的参数:
def get_queryset(self, some_thing=default):
.
.
.
它会工作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.