django - django过滤器获取视图内的过滤器字段值
问题描述
我有这样的过滤器
class SummaryFilter(django_filters.FilterSet):
start = django_filters.DateFilter(
field_name="date_modified",
lookup_expr="gte",
)
end = django_filters.DateFilter(
field_name="date_modified",
lookup_expr="lte",
)
在我看来,我正在这样做
class GetRiskyUsersSummary(generics.ListAPIView):
model = Summary
queryset = Summary.objects.all()
serializer_class = serializers.ModelSerializer
filter_backends = (filters.DjangoFilterBackend,)
filterset_class = SummaryFilter
def list(self, request, *args, **kwargs):
queryset = self.filter_queryset(self.get_queryset())
response = {}
********doing some stuff here and return in response*******
**** for doing these i need the cleaned start and end date as date objects like below but couldnt figure out the option for this in the library****
self.filter.cleaned_data.get('start')
self.filter.cleaned_data.get('end')
return Response({"response": response})
如何在视图中获取这些数据?
解决方案
您可以通过初始化来检索过滤器数据
def list(self, request, *args, **kwargs):
myfilter = self.filterset_class(request.GET, queryset=self.get_queryset())
if myfilter.is_valid():
queryset = myfilter.qs
myfilter.form.cleaned_data.get('start')
myfilter.form.cleaned_data.get('end')
推荐阅读
- javascript - 在 JavaScript 中,当 value 本身是一个对象时,如何记录对象的 {key:value} 对的值?可能有递归函数吗?
- angular - 分配的表达式类型“X”不能分配给类型“X”| “是”
- laravel - 如何使用下拉菜单从数据库下载 dynamci 文件
- objective-c - 在 NSArray 中按顺序运行 TTS
- firebase - 将 drupal 用户迁移到 Firebase 身份验证
- git - 是否可以使用事件阻止合并按钮?
- php - 是否可以在 mysql 表中按日期(时间戳)为每个组选择 10 行?如何进行?
- python - Calculating Quantiles based on a column value?
- asp.net-mvc - 切换到 {controller}/{id}/{action} 会中断 Redirec
- java - 使用 ForkChannel 时调用 MembershipListener#viewAccepted 时 RpcDispatcher#callRemoteMethods 不起作用