我正在尝试构建一个Web应用程序。要求的一部分是,当用户单击“ 1年”之类的时间间隔时,他可以在一年中观看所有即将上映的电影。
当用户单击“ 1年”时,它将触发一个过滤器,该过滤器显示从今天到明年的电影。 django怎么可能?
我想做一个与此逻辑类似的过滤器-
class sales_plot(APIView):
def post(self, request, *args, **kwargs):
interval = json.loads(request.body).get('interval')
queryset = MovieList.objects.filter(date_of_relase= current_date + interval)
serialize = serializer_name(queryset, many=True)
return Response(serialize.data, status=status.HTTP_200_OK)
这是我的模型。py-
class MovieList(models.Model):
Movie_id = models.CharField(max_length=250, blank=True, null=True)
date_of_release = models.DateField(blank=True, null=True)
class Meta:
managed = False
db_table = 'movie_list'
我该怎么做?
答案 0 :(得分:0)
将时间间隔转换为日期对象以及当前日期和时间间隔,并查询所有日期大于或等于interval + current date
的对象
from django.utils import timezone
from dateutil.parser import parse
class sales_plot(APIView):
def post(self, request, *args, **kwargs):
interval = parse(request.data.get("interval") or '00:00:00')
future_date = timezone.now() + interval
queryset = model_name.objects.filter(date_of_relase__gte=future_date)
serialize = serializer_name(queryset, many=True)
return Response(serialize.data, status=status.HTTP_200_OK)
答案 1 :(得分:0)
您可以使用range
import datetime
interval = datetime.datetime.strptime('29-05-2019', "%d-%m-%Y").date()
# datetime.date(2019, 5, 29)
current_date = datetime.datetime.now().date()
# datetime.date(2019, 9, 17)
queryset = model_name.objects.filter(date_of_relase__range=(current_date ,interval))