7
2012
上一节实现了数据的显示,此处添加高级应用分页,排序,以及部分样式的调整
实现排序功能:
在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>©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 (转载注明出处)
目前暂无评论