我的数据库层(MongoDB):
db.define_table('news',
Field('title', label='Title'),
Field('link', label='Link'),
Field('date', label='Date'),
Field('summary',label='Summary'))
我的控制器:
def news():
if len(request.args): page=int(request.args[0])
else: page=0
items_per_page=5
limitby=(page*items_per_page,(page+1)*items_per_page+1)
orderby="~date"
qset = db(db['news'])
grid = qset.select(orderby=orderby, limitby=limitby)
return dict(grid=grid,page=page,items_per_page=items_per_page)
我的观点:
<table class="news-stories">
<th>Date</th>
<th>Title</th>
<th>Summary</th>
{{for i, row in enumerate(grid):}}
{{if i==items_per_page:break}}
<tr>
<td>{{=row.date.strftime("%m/%d/%Y")}}</td>
<td><a href="{{=row.link}}" target="_blank">{{=row.title}}</a></td>
<td>{{=row.summary}}</td>
</tr>
{{pass}}
</table>
{{if page:}}
<a href="{{=URL(args=[page-1])}}">previous</a>
{{pass}}
{{if len(grid)>items_per_page:}}
<a href="{{=URL(args=[page+1])}}">next</a>
{{pass}}
当我设置orderby="~date"
或orderby="date desc"
时,如上例所示,我的日期未按顺序排列; 11月的某些日期是在12月的日期之后(反之亦然)。但是,当我设置orderby="date"
时,日期按照asc顺序完美排序。我在这里错过了什么吗?
日期插入为datetime.datetime.strptime(date,"%m/%d/%Y")
。