django - 具有多个查询参数的动态查询集过滤
问题描述
我已经实现了以下视图,以根据提供的特定查询过滤事务。有没有一种方法可以根据提供的查询动态过滤,例如,一个人只想查询year
,month
甚至只使用一个查询进行过滤。其余查询值最终将具有None
不应包含在过滤器中的值。
class ReportTransactionsFilterAPIView(APIView):
def get(self, request, format=None):
year = self.request.GET.get('year')
month = self.request.GET.get('month')
subcounty = self.request.GET.get('subcounty')
ward = self.request.GET.get('ward')
fromDate = self.request.GET.get('fromDate')
toDate = self.request.GET.get('toDate')
qs = LiquorReceiptTrack.objects.all()
qs = LiquorReceiptTrack.objects.filter(
Q(date_recieved__range=[fromDate,toDate])|
Q(date_recieved__year=year)|
Q(date_recieved__month=month)|
Q(sub_county__iexact=subcounty)|
Q(ward__iexact=ward)
)
解决方案
您可以将django-filter用于您的解决方案。另外有关更多信息,您可以访问https://www.django-rest-framework.org/api-guide/filtering/
推荐阅读
- iis - 如何使用 AWS CodeDeploy 在 Windows EC2 中安装 IIS?
- istio - 从 Istio Ingress Gateway 设置静态响应
- php - file_put_contents() throws 403 Forbidden
- visual-studio-code - VSCode 片段可以进行三个替换吗?
- for-loop - 如何修复“'='预期在'..'附近 " Lua 中的错误
- sql - IsNull returns TRUE when inserting empty (NOT NULL) strings in a LONG VARCHAR field (SQL Anywhere)
- python - 使用文件中的 Numpy 计算特征值和特征向量
- laravel - 最佳实践 - Laravel Controller Eloquent 合并
- java - 与存储库相关的方法仅返回空值
- angular - 角度警告:清理不安全的样式值