2012-08-01 49 views
0

我有一個名爲view_requests.html的頁面。頁面上的一個標籤,我想基本上有一個對象reddit風格的列表,人們可以upvote。我用django-voting完成了這個。Django-voting - 在一個網頁中使用兩個視圖

但是,在第二個選項卡上,我希望能夠添加請求。這要求我有一個人們可以提交的表格。

我面臨的問題是要實現Reddit風格的投票,我不得不在我的URLs.py中使用以下配置(即,不在view.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"), 

回答

1

你不使用該; object_list是內置的Django 通用查看。泛型是關鍵字,因爲它只是爲了讓你更容易使用如果你的觀點符合標準。因爲,您需要的視角比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)) 
+0

謝謝,我不知道,'object_list'是通用的(認爲它是特定於'Django的voting')。我實際上是按照上面介紹的其他頁面的方式創建它們。 – user1328021 2012-08-02 17:05:25

相關問題