Django rest framework 根据加入日期筛选用户

Django rest framework 根据加入日期筛选用户,django-rest-framework,Django Rest Framework,我正在尝试根据加入日期筛选用户。但不知何故,它也需要时间,即使我将其格式化为只有日期,例如“2020-05-08” 您应该在序列化程序中使用DateField,而不是DateTimeField: 如果您的模型中有DateTime字段(我猜,您似乎正在使用标准用户),那么您将需要使用相应的序列化器字段。如果希望在模型中包含DateTime字段,但只按日期筛选,则应自定义视图/序列化器/筛选器 最简单的方法是: class UserViewSet(viewsets.ReadOnlyModelVie

我正在尝试根据加入日期筛选用户。但不知何故,它也需要时间,即使我将其格式化为只有日期,例如“2020-05-08”


您应该在序列化程序中使用DateField,而不是DateTimeField:

如果您的模型中有DateTime字段(我猜,您似乎正在使用标准用户),那么您将需要使用相应的序列化器字段。如果希望在模型中包含DateTime字段,但只按日期筛选,则应自定义视图/序列化器/筛选器

最简单的方法是:

class UserViewSet(viewsets.ReadOnlyModelViewSet):
    serializer_class = UserSerializer

    def get_queryset(self):
        some_date = self.request.GET.get('date')
        qs = User.objects.all()
        if date:
             #filter depends of what exactly do you want
             return qs.filter(date_joined__contains=some_date)
        return qs
您可以在此处查看日期筛选器的示例:


您应该在序列化程序中使用DateField,而不是DateTimeField:

如果您的模型中有DateTime字段(我猜,您似乎正在使用标准用户),那么您将需要使用相应的序列化器字段。如果希望在模型中包含DateTime字段,但只按日期筛选,则应自定义视图/序列化器/筛选器

最简单的方法是:

class UserViewSet(viewsets.ReadOnlyModelViewSet):
    serializer_class = UserSerializer

    def get_queryset(self):
        some_date = self.request.GET.get('date')
        qs = User.objects.all()
        if date:
             #filter depends of what exactly do you want
             return qs.filter(date_joined__contains=some_date)
        return qs
您可以在此处查看日期筛选器的示例:

{
    "date_joined": [
        "Enter a valid date/time."
    ]
}

class UserViewSet(viewsets.ReadOnlyModelViewSet):
    serializer_class = UserSerializer

    def get_queryset(self):
        some_date = self.request.GET.get('date')
        qs = User.objects.all()
        if date:
             #filter depends of what exactly do you want
             return qs.filter(date_joined__contains=some_date)
        return qs