我需要一个json响应,只需输入一年的参数,而不是日期,注意:我在db中有大约25列数据,所以要寻找简单的解决方案,谢谢。
models.py:
    '''class indicator(models.Model):
        fiscalyearend = models.DateField(db_column='FiscalYearEnd') 
    
    serializers.py:
    
    class IndicatorSerializer(serializers.ModelSerializer):
    
        class Meta:
            model = indicator
            fields = ['fiscalyearend']
    
    views.py
    filters:
    
       class indicatorDataBaseListView1Filter(filters.FilterSet):
        fiscalyearend = filters.DateFilter('fiscalyearend',label=('With start date'),lookup_expr='contains')
    
    
    view
    
       class indicatorView1(generics.ListAPIView):
        serializer_class = KeyperformanceindicatorSerializer
        queryset = Indicator.objects.all() #vice versa for get_queryset method
        filter_backends = (DjangoFilterBackend,OrderingFilter,SearchFilter)
        filterset_class = indicatorDataBaseListView1Filter'''
    
    
    url : localhost:8000/indicator/?fiscalyearend=2019
    
    json output : enter a valid date 
    
    my current date formate is 2019-01-01
    
    
     i need to filter the json just by entering the year in the url instead of entire date发布于 2020-06-22 16:07:11
如果您只使用参数year或month查找,您可以使用django_filters.NumberFilter,然后它将神奇地在您的localhost:8000/indicator/?fiscalyearend=2019上工作,同样用于过滤month。
class indicatorDataBaseListView1Filter(django_filters.FilterSet):
    # field name <fiscalyearend> will eventually used as query parameter?<field_name>
    fiscalyearend = django_filters.NumberFilter(field_name= 'fiscalyearend', lookup_expr='year')视图
class indicatorView1(generics.ListAPIView):
    serializer_class = KeyperformanceindicatorSerializer
    queryset = Indicator.objects.all() #vice versa for get_queryset method
    filter_backends = (DjangoFilterBackend,OrderingFilter,SearchFilter)
    # note: filter_class 
    filter_class = indicatorDataBaseListView1Filterhttps://stackoverflow.com/questions/62514418
复制相似问题