Python 是否可以在'DjangoFilterBackend'的'filterset'u fields'列表中的'timestamp'字段中使用'uuu date'呢`
我正在使用Python 是否可以在'DjangoFilterBackend'的'filterset'u fields'列表中的'timestamp'字段中使用'uuu date'呢`,python,django,django-rest-framework,Python,Django,Django Rest Framework,我正在使用ListAPIView列出数据库表中的记录,该表在models.py中表示为ExpiredOrders(models.Model) Django模型有几个列,以及在处创建的和在处修改的作为时间戳 我想根据查询参数created\u at过滤created\u at上的记录 我正试图使用DjangoFilterBackend实现同样的效果 filter_backends = [DjangoFilterBackend] filterset_fields = ['craeted_at__da
ListAPIView
列出数据库表中的记录,该表在models.py
中表示为ExpiredOrders(models.Model)
Django模型有几个列,以及在处创建的和在
处修改的作为时间戳
我想根据查询参数created\u at
过滤created\u at
上的记录
我正试图使用DjangoFilterBackend
实现同样的效果
filter_backends = [DjangoFilterBackend]
filterset_fields = ['craeted_at__date']
但是,它返回了一个错误-
'Meta.fields' must not contain non-model field names: created_at__date
由于created_date
是一个时间戳,在查询参数中,我将只获取日期YYYY-MM-DD
,我使用\u date
使数据库表的记录与查询参数相比较
实现这一目标的另一种方法是-
def get_queryset(self):
try:
queryset = ExpiredOrders.objects.filter(created_at__date=self.query_params['created_at'])
except:
queryset = ExpiredOrders.objects.all()
return queryset
我想知道是否可以通过在列表filterset\u字段中定义字段名来完成
另外,请给我解释一下这里的\u
是什么意思
据我所知,它是一种表示类变量或方法的约定,不能用于其他类或子类的对象。在Python中,这个概念可能被称为名称混乱
在Django文档中,我看到了许多这样的--
。
其中一些是-
gte
-大于或等于
lte
-小于或等于
et
-等于使用FilterSet
类创建带有自定义过滤器的过滤器
class ExpiredOrderFilter(filters.FilterSet):
created_at__date = filters.DateFilter(field_name='created_at__date')
class Meta:
model = ExpiredOrder
fields = ['created_at',]
现在不再使用filterset\u字段
userfilterset\u类
filter_backends = [DjangoFilterBackend]
filterset_class = ExpiredOrderFilter
我在filterset\u字段中有多个字段
如何使其与filterset\u类一起工作
在类中定义所需的任意多个字段。您可以在filterset类中定义的字段数量没有限制。非常感谢!