Django Rest Framework筛选用户:仅返回account_type为supplier的记录
仅返回account_type为"supplier"的用户解决方案
要实现只返回account_type字段为"supplier"的用户,只需修改views.py中的查询集,添加过滤条件即可,有两种常用方式:
方式一:直接修改queryset
直接在getusers类中替换原有的queryset,使用filter方法筛选符合条件的用户:
class getusers(viewsets.ModelViewSet): # 仅筛选account_type为supplier的用户 queryset = UserProfile.objects.filter(account_type="supplier") serializer_class = GetUsersSerializer
方式二:重写get_queryset方法(更灵活)
如果后续需要根据请求参数动态调整过滤条件,推荐重写get_queryset方法:
class getusers(viewsets.ModelViewSet): serializer_class = GetUsersSerializer def get_queryset(self): # 自定义查询逻辑,返回符合条件的用户集合 return UserProfile.objects.filter(account_type="supplier")
修改后,接口返回的JSON数据就只会包含account_type为"supplier"的用户,与你期望的响应一致。
内容的提问来源于stack exchange,提问作者Kyle Andrew
相关产品推荐
相关产品推荐

