【发布时间】:2021-05-21 07:42:09
【问题描述】:
我正在尝试返回一系列包含日期属性的对象。使用字段查找range,它只返回具有起始范围的对象。
例如:
如果范围的开始等于 2021-05-19,范围的结束等于 2021-05-21,则仅返回日期为 2021-05-19 的对象。
urls.py
urlpatterns = [
...
path('weekly/<str:activity_date>/', views.ActivityDateList.as_view(), name='weekly_dates'),
...
]
views.py
from django.shortcuts import render
from rest_framework import generics
from .serializers import ActivityListSerializer
from .models import Activity
from keeper import serializers
...
class WeeklyActivityView(generics.ListAPIView):
serializer_class = ActivityListSerializer
def get_queryset(self):
end_of_week = "2021-05-21" # Temporary test date
activity_date = self.kwargs['activity_date']
return render(Activity.objects.filter(activity_date__range=(activity_date, end_of_week)))
models.py
class Activity(models.Model):
activity_name = models.CharField(max_length=200, blank=False)
activity_duration = models.CharField(max_length=300, blank=False)
activity_date = models.DateField(auto_now=False, blank=False)
def __str__(self):
return f"Activity: {self.activity_name} Started at: {self.activity_start} Activity Duration: {self.activity_duration}"
序列化器.py
from rest_framework import serializers
from .models import Activity
from rest_framework.reverse import reverse
class ActivityListSerializer(serializers.ModelSerializer):
absolute_url = serializers.SerializerMethodField()
class Meta:
model = Activity
fields = [
'activity_name',
'activity_duration',
'activity_date',
'absolute_url'
]
def get_absolute_url(self, obj):
return reverse('activities_detail', args=(obj.pk,))
存在其他日期的对象:
如何返回指定范围内日期属性的对象?
【问题讨论】:
标签: python django django-rest-framework