0

我有一个页面叫做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"),
4

1 回答 1

1

您不必使用它;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))
于 2012-08-01T20:11:27.770 回答