gpt4 book ai didi

python - Django 休息框架 : Custom url pattern for Detail model-viewset with datetime lookup field

转载 作者:太空宇宙 更新时间:2023-11-04 03:12:25 25 4
gpt4 key购买 nike

我有一个 ModelViewSet,其查找字段定义为 timestamp(日期时间字段)而不是默认的 pk 字段

这是我的代码:

class MySerializer(serializers.ModelSerializer):
class Meta:
model = ACFCrowdData

class MyViewSet(viewsets.ModelViewSet):
queryset = MyModel.objects.all()
serializer_class = MySerializer
lookup_field = 'timestamp'

timestamp 字段的类型为 models.DatetimeField

现在我想通过在 url 中将日期时间查找模式指定为 YYYYMMDDHHMISS 来访问我的模型的详细 View 集。相反,它只接受默认格式 YYYY-MM-DDTHH:MI:SS

我想完成这个。我希望将我的详细 View 集路由到 http://example.com/mymodel/YYYYMMDDHHMISS

任何帮助或提示都会很好

谢谢

最佳答案

您可以创建一个自定义的retrieve 方法并使用您自己的时间戳解析器。这样的事情可能会成功。我还没有尝试过这个特定的代码,但原理应该可行。

from datetime import datetime

class MyViewSet(viewsets.ModelViewSet):

...

def retrieve(self, request, timestamp=None):
queryset = self.get_queryset()
try:
parsedtime = datetime.strptime(timestamp, '%Y%m%d%H%M%S')
except ValueError:
# incorrect timestamp
...
record = get_object_or_404(queryset, timestamp=parsedtime)
serializer = self.get_serializer(record)
return Response(serializer.data)

关于python - Django 休息框架 : Custom url pattern for Detail model-viewset with datetime lookup field,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37573119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com