[英]Filter date by month DRF
我想過濾按月份和年份創建的模型。
這是我的模型:
class Cotisation(models.Model):
date = models.DateTimeField()
campagne = models.ForeignKey(Campagne, on_delete=models.CASCADE)
class Meta:
managed = True
db_table = 'cotisations'
ordering = ['-id']
這是我的看法:
class CotisationViewSet(viewsets.ModelViewSet):
queryset = Cotisation.objects.all()
serializer_class = CotisationSerializer
pagination_class = StandardResultsSetPagination
filter_backends = (filters.SearchFilter, DjangoFilterBackend, filters.OrderingFilter,)
filter_class = CotisationFilter
search_fields = ('organism__name', 'organism__num_onic')
ordering_fields = ('date',)
這是我的過濾器類:
class CotisationFilter(django_filters.FilterSet):
month = django_filters.NumberFilter(field_name='date', lookup_expr='month')
year = django_filters.NumberFilter(field_name='date', lookup_expr='year')
class Meta:
model = Cotisation
fields = ['organism__id', 'campaign__id', 'campaign__year', 'month', 'year']
當我嘗試按年份查詢時,效果很好:
GET http://{{URL}}/cotisations/?year=2019
但是當我嘗試使用month時它不起作用:
GET http://{{URL}}/cotisations/?month=10
先感謝您。
最好,傑里米。
PS:新年快樂!
解:
@Horion完美回答。
下面是解決這一問題的答案: 答案
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.