Я использую пользователя по умолчанию Django и конечную точку REST API для списка пользователей, отфильтрованных по параметрам запроса. Это выглядит следующим образом:django-filter - параметр запроса карты к имени поля
# 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
«s в параметре запроса. Поэтому, если я хочу фильтровать пользователей на основе имени пользователя, я бы использовал /users/?username=johndoe
. Но что, если я хочу сопоставить параметр запроса, который не является полем в модели пользователя? Скажем, у меня есть параметр запроса, который называется nickname
, и я хочу использовать его для фильтрации по полю first_name
?
Использование URLConf
и названная группа могут быть решением, но если я сделаю это для 15 полей, это будет очень долго.
Каков наилучший способ?