Django按日期分页(周)
Posted
技术标签:
【中文标题】Django按日期分页(周)【英文标题】:Django pagination by date (week) 【发布时间】:2021-05-21 23:20:05 【问题描述】:我正在制作一个网站,显示从您打开网站之日到六天后(当前周)这周的足球比赛,我想按日期分页。
例如<previous> <19 feb - 25 feb> <next>
然后当我按下下一个<previous> <26 feb - 4 march> <next>
在views.py中。
matches 是一个字典列表,每个字典是一个单独的游戏,包含游戏的日期和其他信息,并按日期排序
def home(request):
start = datetime.now().date()
end = today + timedelta(6)
matches = request_games(today, after_week)
return render(request, "sporty/home.html",
"matches": matches,
"start" : start,
"end": end
)
在 home.html 中
% for match in matches %
//match info
% endfor %
【问题讨论】:
你有什么问题? 我的问题是如何按周分页,一旦我打开网站显示从那天到一周后的比赛,然后当你按下一步时,你会进入下一周的比赛,所有比赛都存储在字典 【参考方案1】:为了让您创建不同周的集合,也许是整个赛季,您需要创建另一个字典,其中包含您创建的匹配字典,并在分页时访问每个“匹配”字典。
那么此时您需要通过单选按钮或一些 javascript 函数来确定要查看的字典。下面的链接讨论了使用 javascript 和 django 的正确方法,虽然您不能在 django 模板中使用 javascript 变量,但您可以使用 ajax 解决它。
use javascript variable in django template
您还可以为每个匹配字典创建一个 div 元素。然后,在您的 css 文件中,将每个元素设置为 display:none
。然后,您可以从 javascript 访问该元素并更改 div 元素的显示,以便在按下某个按钮时显示它。
function changeGames()
document.getElementById('div1').style.display= 'block' ;
document.getElementById('div2').style.display= 'none' ;
【讨论】:
以上是关于Django按日期分页(周)的主要内容,如果未能解决你的问题,请参考以下文章