【发布时间】:2015-01-24 02:17:47
【问题描述】:
我正在使用 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
只要我在查询参数中提供User 的字段名称,它就可以很好地工作。所以,如果我想根据用户名过滤用户,我会使用/users/?username=johndoe。但是,如果我想映射不是用户模型中的字段的查询参数怎么办?假设我有一个名为 nickname 的查询参数,我想用它来过滤 first_name 字段?
使用URLConf 和命名组可能是一个解决方案,但如果我为 15 个字段这样做,那么它会很长。
有什么更好的方法?
【问题讨论】:
标签: python django django-rest-framework django-filter