【发布时间】:2024-05-21 04:10:02
【问题描述】:
我正在使用 django rest 框架 (DRF) 构建 django 应用程序。我有 DateField 类型的模型,我想根据 yyyy-mm-dd 格式的日期进行查询,例如http://127.0.0.1:8000/dataharian/2021-08-09/。我使用了here 中提到的路径转换器 进行一些调整,使 URL 能够接受 yyyy-mm-dd 格式。这是 DataHarian 模型、DataHarian 视图、转换器和 URL.py 文件
DataHarian 模型:
class DataHarian(models.Model):
tanggal = models.DateField(blank=False, null=False)
kumulatif = models.IntegerField(default=0)
sembuh = models.IntegerField(default=0)
dalam_perawatan = models.IntegerField(default=0)
meninggal = models.IntegerField(default=0)
def __str__(self):
return str(self.tanggal)
DataHarian 视图:
class DataHarianDetail(generics.RetrieveAPIView):
queryset = DataHarian.objects.all()
serializer_class = DataHarianSerializer
permission_classes = [permissions.IsAuthenticatedOrReadOnly]
转换器: 从日期时间导入日期时间
class TanggalConverter:
regex = '\d{4}-\d{2}-\d{2}'
def to_python(self, value):
return datetime.strptime(value, '%Y-%m-%d')
def to_url(self, value):
return value
URL.py
from django.urls import path, register_converter
from datetime import datetime
from . import views, converters
register_converter(converters.TanggalConverter, 'yyyy-mm-dd')
urlpatterns = [path('dataharian/<yyyy-mm-dd:tanggal>', views.DataHarianDetail.as_view()),]
*Tanggal 是印尼语的日期
如果我的解释不够好,请反馈 感谢您的回复
【问题讨论】:
标签: python django django-rest-framework django-views