Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否可以在'DjangoFilterBackend'的'filterset'u fields'列表中的'timestamp'字段中使用'uuu date'呢`_Python_Django_Django Rest Framework - Fatal编程技术网

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字段
user
filterset\u类

filter_backends = [DjangoFilterBackend]
filterset_class = ExpiredOrderFilter

我在
filterset\u字段中有多个字段
如何使其与
filterset\u类一起工作
在类中定义所需的任意多个字段。您可以在filterset类中定义的字段数量没有限制。非常感谢!