如何在Django rest框架中将DateTime作为null进行过滤?

2021-12-08 05:15:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我只想用Django rest框架构建过滤API。一个字段是datetime2。我想筛选具有空值datetime2的记录

这是我的模特

ruleend = models.DateTimeField(db_column='RuleEnd', blank=True, null=True)

这是我的serializer.py

class ProductPriceSerializer(serializers.ModelSerializer): 
    class Meta: 
        model = ProductPrice 
        fields = ['pricingruleid', 'productkey', 'productcode', 'customerid', 'customerchain', 'productpriceusd', 'rulestart', 'ruleend', 'creatorupn', 'created', 'customername', 'productdescription'] 

这里是views.py

class ProductPriceViewSet(viewsets.ModelViewSet):    
    serializer_class = ProductPriceSerializer
    pagination_class = pagination.PageNumberPagination
    filter_backends = [DjangoFilterBackend, filters.OrderingFilter]
    filterset_fields = ['customerid', 'customername', 'productkey', 'productdescription', 'ruleend', 'rulestart']
    ordering_fields = ['customerid', 'productkey', 'rulestart']

    def get_queryset(self):
        self.pagination_class.page_size_query_param = 'page_size'
        return ProductPrice.objects.all()

url.py

path('productprice/', ProductPriceViewSet.as_view({'get':'list','post':'create'}), name="product-price"), 

这使我很容易实现分页、过滤和排序。 但我有一个问题。我需要筛选ruleend中具有空值的记录

enter image description here

空值的有效日期/时间是多少?或者我应该添加一些东西到我的后端