django过滤器在视图中获取过滤器字段值
我有这样的过滤器django过滤器在视图中获取过滤器字段值,django,django-filter,Django,Django Filter,我有这样的过滤器 class SummaryFilter(django_filters.FilterSet): start = django_filters.DateFilter( field_name="date_modified", lookup_expr="gte", ) end = django_filters.DateFilter( field_name="date_modified", loo
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})
在我看来,我是这样做的
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')
你说的“开始和结束日期”是什么意思?查询参数中的数据?我指的是表单验证后的数据。因此,在request.GET中,我将日期作为字符串,在清理之后,我将获得date对象。afaik,你不能这样做。但是,您可以自己解析它