上一节实现了数据的显示,此处添加高级应用分页,排序,以及部分样式的调整

实现排序功能:
在models类中添加Meta内类
 
class Excel(modes.Model):
   …
   class Meta:
       ordering = ['-name']    #’-'表是逆序
此时可刷新页面,看到输出内容已按name逆序排列
 
实现分页:
修改urls,修改如下
url(r’^/?$’, ‘django.views.generic.list_detail.object_list’,dict(paginate_by=10, **ini_dict)), #修改了原来传给的 object_list  ini_dict 参数,这里设置每页的条数为 10 
 
修改templates/exceltest/excel_list.html
添加
<div width=”500″>
  <div align=”right”>
    {% if has_previous %}
        <a href=”/excel?page={{ previous }}”>prev</a>
        {% endif %}
 
    {% if has_next %}
    <a href=”/excel?page={{ next }}”>next</a>
    {% endif %}
  </div>
</div>
刷新页面,显示出分页按钮,实现分页效果
接下来我们使用css调整一下样式
css样式文件属于静态文件,我们首先在setting中设置STATI_ROOT
修改urls.py文件,使静态文件到指定路径中查询
添加:
url(r’^site_static/(?P<path>.*)$’,'django.views.static.serve’,{‘document_root’:settings.STATIC_ROOT})
 
 
添加路径’/home/wwwdjango/djangotest1/exceltest/css’,
在/css/下创建base.css样式文件
此处我们再使用模版来简化重复的工作
 
添加templates/base.html文件如下
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html >
  <head>
    <title>Excel</title>
    <link href=”/site_static/bass.css” rel=”stylesheet” type=”text/css” />
  </head>
  <body>
      <div id=”container”>
          {% block content %} content {% endblock %}
      </div>
      <div id=”footer”>
          {% block footer %} footer {% endblock %}
          <p>&copy;2012 fresker.com</p>
      </div>
  </body>
</html>
 
修改templates/exceltest/excel_list.html
顶部添加
{% extends “base.html” %}
{% block content %}
 
底部添加
{% endblock %}
 
 
此时刷新页面,页面添加了footer等内容,和一些在base.css中定义的样式
页面中性别显示仍为M,F,这个对于显示不是太人性化
我们添加过滤功能
在templates/所在目录添加目录templatetags/
添加__init__.py,文件置空就行
添加文件change_gender.py
#!/usr/bin/python
# -*- coding:UTF-8 -*-
 
from django import template
 
register = template.Library()
 
@register.filter(name=’change_gender’)    #使用装饰器,修改M=》man,F=>woman
def change_gender(value):
    if value == ‘M’:
        return ‘man’
    else:
        return ‘woman’
 
修改excel_list.html文件
在头部添加
{% loader change_gender %}
修改{{ user.gender }} => {{ user.gender|change_gender }}使过滤功能作用
此时刷新页面,我们将看到性别栏显示为man,woman,不再是之前的m,f
 
 
 
 

 
 
 
标签: ,
本文连接地址: http://www.fresker.com/old2/archives/527 (转载注明出处)

回复

目前暂无评论

Sorry, 评论已关闭.