37,719
社区成员
发帖
与我相关
我的任务
分享
def listing(request):
msg_list = Msg.objects.all()
paginator = Paginator(msg_list, 6)
page = request.GET.get('page')
try:
msgpages = paginator.page(page)
except PageNotAnInteger:
msgpages = paginator.page(1)
except EmptyPage:
msgpages = paginator.page(paginator.num_pages)
return render_to_response('pagination/list.html', {'msgpages': msgpages})
url(r'^$',
ListView.as_view(
#paginate_by=ITEMS_PER_PAGE,
queryset=Msg.objects.order_by('-id'),
context_object_name='msg_list',
template_name='msg_list_page.html'
)),
{% extends "base.html" %}
{% block title %}留言列表{% endblock %}
{% block content %}
<table class="msglist">
<caption><h2>Django 留言本</h2></caption>
{% include "msg_list.html" %}
</table>
{% include "pagination/list.html" %}
{% endblock %}
{% for msgpage in msgpages %}
{{ msgpage.full_name|upper }}
{% endfor %}
<div class="pagination">
<span class="step-links">
{% if msgpages.has_previous %}
<a href="?page={{ msgpages.previous_page_number }}">previous</a>
{% endif %}
<span class="current">
Page {{ msgpages.number }} of {{ msgpages.paginator.num_pages }}
</span>
{% if msgpages.has_next %}
<a href="?page={{ msgpages.next_page_number }}">next</a>
{% endif %}
</span>
</div>
from django.db import models
class Category(models.Model):
cname = models.CharField(verbose_name=u'信息分类', max_length=30)
baseType = models.ForeignKey('self', null=True, blank=True, verbose_name=u'所属分类')
def __unicode__(self):
return self.cname
class Msg(models.Model):
title = models.CharField(max_length=30)
content = models.TextField()
category = models.ForeignKey(Category, verbose_name='信息分类')
def __unicode__(self):
return self.title
然后想
调用每个catetory 列表的信息
views.py 里这样写:def categorylist(request, pk):
category = get_object_or_404(Category, pk=pk)
msg_list = category.msg_set.all().order_by('-is_top', '-id')
return render_to_response('cate_list.html', {'msg_list': msg_list, 'user':request.user})
cate_list.html里这样写:
<UL> {% if msg_list %}
{% for msg in msg_list %} <LI>
{{ msg.title }} </li>
{% endfor %}
</UL>
分页代码在这里应该怎么写?
{% endif %}
这样的分页代码在views.py 与 cate_list.html 按你的思路应该怎么写呢?
多谢{% if is_paginated %}
<table class="noframe">
<tr>
{% if page_obj.has_previous %}
<td><a href="?page={{page_obj.previous_page_number}}">上一页</a></td>
{% endif %}
{% if page_obj.has_next %}
<td><a href="?page={{page_obj.next_page_number}}">下一页</a></td>
{% endif %}
<td>第{{page_obj.number}}页,共{{paginator.num_pages}}页</td>
<form action="" method="get">
<td> 到第</td>
<td><input name="page" type="text" size="2"></td>
<td>页</td>
<td><input type="submit" value="跳转"></td>
</form>
</tr>
</table>
{% endif %}
url(r'^$',
ListView.as_view(
paginate_by=ITEMS_PER_PAGE,
queryset=Msg.objects.order_by('-id'),
context_object_name='msg_list',
template_name='msg_list_page.html'
)),
{% extends "base.html" %}
{% block title %}留言列表{% endblock %}
{% block content %}
<table class="msglist">
<caption><h2>Django 留言本</h2></caption>
{% include "msg_list.html" %}
</table>
{% include "pagination/paginator.html" %}
{% endblock %}
{% if is_paginated %}
<table class="noframe">
<tr>
{% if has_previous %}
<td><a href="?page={{previous}}">上一页</a></td>
{% endif %}
{% if has_next %}
<td><a href="?page={{next}}">下一页</a></td>
{% endif %}
<td>第{{page}}页,共{{pages}}页</td>
<form action="" method="get">
<td> 到第</td>
<td><input name="page" type="text" size="2"></td>
<td>页</td>
<td><input type="submit" value="跳转"></td>
</form>
</tr>
</table>
{% endif %}