首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django-投票--对一个网页使用两个视图

Django-投票--对一个网页使用两个视图
EN

Stack Overflow用户
提问于 2012-08-02 02:45:11
回答 1查看 123关注 0票数 0

我有一个叫view_requests.html的页面。在页面上的一个选项卡上,我想基本上有一个对象reddit样式的列表,人们可以向上投票。我使用django-voting实现了这一点。

但是,在第二个选项卡上,我希望能够添加请求。这需要我有一个人们可以提交的表单。

我面临的问题是,为了实现Reddit风格的投票,我必须在我的URLs.py中使用以下配置(即.而不是在views.py中为它创建自己的视图)。但是要创建表单,我需要访问一些我用views.py编写的代码。是否可以在同一页上的不同选项卡中同时显示这两个选项卡,以及我该如何执行此操作?

代码语言:javascript
复制
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"),
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-02 04:11:28

您不必使用它;object_list是一个内置的Django通用视图。Generic是关键字,因为它只是为了在视图符合标准的情况下使其更容易。既然您需要从视图中获得比object_list所能提供的更多内容,那么是时候丢弃它并编写您自己的视图了。您可以使用object_list作为创建您自己的视图的指南,但是其中有许多无关的样板代码,只是为了使其具有通用性。简单地说,以下是您需要的全部内容:

代码语言:javascript
复制
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))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11765550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档