我正在使用django rest框架构建API。 我有这个模型:
class Versement(models.Model):
date = models.DateTimeField()
organisme = models.ForeignKey(Organisme, on_delete=models.CASCADE, null=True)
这是我的观点:
class VersementViewSet(viewsets.ModelViewSet):
queryset = Versement.objects.all()
serializer_class = VersementSerializer
pagination_class = StandardResultsSetPagination
filter_backends = (filters.SearchFilter, DjangoFilterBackend,)
filter_class = VersementFilter
search_fields = ('organisme__nom', 'organisme__code')
还有我的过滤器:
class VersementFilter(django_filters.FilterSet):
class Meta:
model = Versement
fields = ['organisme__id']
是否可以将字段“日期”添加到我的字段中并仅搜索特殊年份?例如:
{{URL}}/versements/?date=2015
如果你们知道如何进行... 预先谢谢你。
答案 0 :(得分:0)
您可以显式定义过滤器字段并指定lookup_expr='year'
:
class VersementFilter(django_filters.FilterSet):
date = django_filters.NumberFilter(field_name='date', lookup_expr='year')
class Meta:
model = Versement
fields = ['organisme__id', 'date']