Я создаю новостной сайт. Мне нужно отобразить 48 часов самых просматриваемых новостей.Поэтому мне нужно сначала получить новости за 48 часов, а затем получить их фото.В настоящее время я использую очень сложный метод из учебника:
def get_two_days_read_data(content_type):
today = timezone.now().date()
dates = []
read_nums = []
for i in range(2, 0, -1):
date = today - datetime.timedelta(days=i)
dates.append(date.strftime('%m/%d'))
read_details = ReadDetail.objects.filter(content_type=content_type, date=date)
result = read_details.aggregate(read_num_sum=Sum('read_num'))
read_nums.append(result['read_num_sum'] or 0)
return dates, read_nums
Мой вопрос: есть ли более простой способ?
Например, что-то вроде этого:
def newsDetailView(request, news_pk):
news = get_object_or_404(News, id=news_pk)
News.objects.filter(id=news_pk).update(pv=F('pv') + 1)
48_hours_hot_news = news.objects.filter(**48_housrs**).order_by('-pv')
return render(request, "news_detail.html", {
'news': news,
'48_hours_hot_news' : 48_hours_hot_news
})
Любые друзья могут помочь? Большое спасибо!