缘由比较长,不知道下面哪个地方可以改进,避免写出用{% block prev_url1 %}和{% block prev_url2 %}来表示同一个block的窘境。。。
1 要写一个响应式的页面,有一个表示页码的div,想要在宽屏下显示<上一页><页码><下一页>,窄屏下显示<上一页><下一页>。
用了semanticui,宽屏下div的class属性为three colum,窄屏下是two colum, 用jquery的话要监听屏幕resize事件,再删除<页码>的div,改变class的属性,有点复杂,所以写了两个div,根据屏幕尺寸隐藏其中的一个。
2 Django中多个地方都要用到页码显示,写了list.html,其他模板extends list.html
3 上一页 下一页的生成用了Django的paginate,生成一个上一页页码的过程如下:
{% if page_obj.has_previous %}
{% url 'post:category_view' current_category.slug %}?page={{ page_obj.previous_page_number }}
{% endif %}
因为各个view的网址规则不同,所以在我在list.html中创建了“page”block,“page”中需要两个block:prev_url 和 next_url,又因为我有两个页码div,每个block要用两回,所以产生了开头的问题。
(因为prev_url和next_url的生成太复杂了(判断是否存在上一页,字符串拼接,with xx as 之类太长了),所以没办法把在模板中把它们定义成variable传入“page”中)
stackoverflowflow上给出的blcok重用方式是block里再嵌套一个block,感觉还不如写成两个重复的block简单些。。
想问下上面哪个环节可以改进,谢谢。
1 要写一个响应式的页面,有一个表示页码的div,想要在宽屏下显示<上一页><页码><下一页>,窄屏下显示<上一页><下一页>。
用了semanticui,宽屏下div的class属性为three colum,窄屏下是two colum, 用jquery的话要监听屏幕resize事件,再删除<页码>的div,改变class的属性,有点复杂,所以写了两个div,根据屏幕尺寸隐藏其中的一个。
2 Django中多个地方都要用到页码显示,写了list.html,其他模板extends list.html
3 上一页 下一页的生成用了Django的paginate,生成一个上一页页码的过程如下:
{% if page_obj.has_previous %}
{% url 'post:category_view' current_category.slug %}?page={{ page_obj.previous_page_number }}
{% endif %}
因为各个view的网址规则不同,所以在我在list.html中创建了“page”block,“page”中需要两个block:prev_url 和 next_url,又因为我有两个页码div,每个block要用两回,所以产生了开头的问题。
(因为prev_url和next_url的生成太复杂了(判断是否存在上一页,字符串拼接,with xx as 之类太长了),所以没办法把在模板中把它们定义成variable传入“page”中)
stackoverflowflow上给出的blcok重用方式是block里再嵌套一个block,感觉还不如写成两个重复的block简单些。。
想问下上面哪个环节可以改进,谢谢。