【问题标题】:{ "detail": "Not found." }{“详细信息”:“未找到。” }
【发布时间】:2021-07-21 19:57:25
【问题描述】:

观看次数

class Check(generics.RetrieveAPIView):
    queryset = Log.objects.all().order_by('-date_to_recived')
    serializer_class = LogSerializer
    permission_classes = [OwnerPermission]

def get_queryset(self):
    date = self.kwargs.get('pk')
    user = self.request.user
    return Log.objects.filter(product__owner = user,date_to_recived=date)

网址

 path('check/<str:pk>',Check.as_view(),name='check'),

你好,我尝试用我的输入(日期)接收多个对象。但我明白了

【问题讨论】:

  • RetrieveAPIView 将调用get_object 方法。

标签: django-rest-framework django-urls


【解决方案1】:

您应该使用ListAPIView

class CheckView(generics.ListAPIView):
    queryset = Log.objects.all().order_by('-date_to_recived')
    serializer_class = LogSerializer
    permission_classes = [OwnerPermission]

def get_queryset(self):
    return super().get_queryset().filter(
        product__owner=self.request.user,
        date_to_recived=self.kwargs['pk']
    )

话虽如此,过滤DateTimeField 有点奇怪,因为毫秒可以决定是否检索对象。通常在DateTimeField__date 上过滤一个。

我还建议您将 Check 重命名为 CheckView,因为这样可以更清楚地表明这是一个视图,而不是一个模型。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-27
    • 1970-01-01
    • 2017-05-15
    • 2018-02-13
    • 1970-01-01
    • 2023-04-03
    • 2020-11-06
    • 2013-11-14
    相关资源
    最近更新 更多