gpt4 book ai didi

python - django-filter - 将查询参数映射到字段名称

转载 作者:太空宇宙 更新时间:2023-11-03 18:04:22 25 4
gpt4 key购买 nike

我使用 Django 的默认用户和 REST API 端点来列出按查询参数过滤的用户。它看起来像这样:

# serializers.py
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User

# views.py
class UserFilter(django_filters.FilterSet):
class Meta:
model = User


class UserList(generics.ListAPIView):
model = User
serializer_class = UserSerializer
filter_class = UserFilter

只要我在查询参数中提供用户的字段名称,这就可以正常工作。因此,如果我想根据用户名过滤用户,我会使用 /users/?username=johndoe。但是,如果我想映射一个不是用户模型中字段的查询参数怎么办?假设我有一个名为 nickname 的查询参数,我想用它来过滤 first_name 字段?

使用 URLConf 和命名组可能是一个解决方案,但如果我对 15 个字段执行此操作,那么它会很长。

更好的方法是什么?

最佳答案

您可以将 nickname 添加到 FilterSet 中,指向模型上的实际字段。

# views.py
class UserFilter(django_filters.FilterSet):
nickname = django_filters.CharFilter(name='first_name')
class Meta:
model = User

关于python - django-filter - 将查询参数映射到字段名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27137541/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com