我有一个叫view_requests.html的页面。在页面上的一个选项卡上,我想基本上有一个对象reddit样式的列表,人们可以向上投票。我使用django-voting实现了这一点。
但是,在第二个选项卡上,我希望能够添加请求。这需要我有一个人们可以提交的表单。
我面临的问题是,为了实现Reddit风格的投票,我必须在我的URLs.py中使用以下配置(即.而不是在views.py中为它创建自己的视图)。但是要创建表单,我需要访问一些我用views.py编写的代码。是否可以在同一页上的不同选项卡中同时显示这两个选项卡,以及我该如何执行此操作?
url(r'^view_requests/?$', object_list, dict(queryset=LibraryRequest.objects.all(),
template_object_name='request', template_name='spicemodels/view_requests.html',
paginate_by=15, allow_empty=True), name="view_requests"),发布于 2012-08-02 04:11:28
您不必使用它;object_list是一个内置的Django通用视图。Generic是关键字,因为它只是为了在视图符合标准的情况下使其更容易。既然您需要从视图中获得比object_list所能提供的更多内容,那么是时候丢弃它并编写您自己的视图了。您可以使用object_list作为创建您自己的视图的指南,但是其中有许多无关的样板代码,只是为了使其具有通用性。简单地说,以下是您需要的全部内容:
def my_view(request, page=None):
paginate_by = 15
qs = LibraryRequest.objects.all()
paginator = Paginator(qs, paginate_by, allow_empty_first_page=True)
if not page:
page = request.GET.get('page', 1)
try:
page_number = int(page)
except ValueError:
if page == 'last':
page_number = paginator.num_pages
else:
# Page is not 'last', nor can it be converted to an int.
raise Http404
try:
page_obj = paginator.page(page_number)
except InvalidPage:
raise Http404
render_to_response('spicemodels/view_requests.html', {
'request_list': page_obj.object_list,
'paginator': paginator,
'page_obj': page_obj,
'is_paginated': page_obj.has_other_pages(),
}, context_instance=RequestContext(request))https://stackoverflow.com/questions/11765550
复制相似问题