我需要一个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
复制相似问题