2012-07-17 69 views
1

我是新來的Django如何重定向到django中的上一頁?

我工作的一個投票程序,我需要在投票

含義,我想刷新頁面不離開之後留在同一頁上,並顯示成功消息

這裏是我的view.py(這裏我設置和檢查的cookies,以避免重複投票):

@render_to('user/books_list.html') 
def vote(request, object_id): 
voted=request.session.get('has_voted',[]) 
books = Book.objects.get(id=object_id); 

if object_id in voted:   
    return { 
       'object': books, 
       'error_message': "You have already voted.", 
      } 
else: 
    books.votes += 1 
    books.save() 
    request.session['has_voted']=voted+[object_id] 
    return locals() 

這裏是我的urls.py:

urlpatterns = patterns('user.views', 

    url(r'^books/$', 'books_list', name="books_list"), 
    url(r'^books/(?P<object_id>\d+)$', 'book_detail', name="book"), 
    url(r'^books/vote/(?P<object_id>\d+)$', 'vote', name="vote"), 
) 

這裏是我的模板:

{% if list_participant %} 

{% for book in list_books %} 

{{ book.name }} 

    <a href={% url vote book.id %} >vote</a> 

    {{ book.votes }} 

    {% endfor %} 

{% endif %} 

我現在做它的方式把它重定向我的書/票/ X 我想它重定向到前一頁,這是書/

任何想法,請提前

回答

1

解決

太感謝我所做的是增加在顯示書籍的同一視圖內進行投票處理,並使用If Post條件來檢測何時點擊投票按鈕

@render_to('user/list_books.html') 
def list_books (request):  
    books_list = Book.objects.all() 

    if request.POST: 
    voted=request.session.get('has_voted',[]) 
    p_id=request.POST['id'] 
    book = Book.objects.get(id=p_id); 
    if p_id in voted:   
     return { 
       'notvoted': book, 
       'error_message': "You have already voted for this book today!", 
       'books_list': books_list 
       } 
    else: 
     book.votes += 1 
     book.save() 

     vote = Vote() 
     vote.book_id = p_id 
     vote.ip = request.META.get('REMOTE_ADDR')  
     vote.save() 

     request.session['has_voted'] = voted+[p_id] 
     request.session.set_expiry(86400)#one day in seconds 
     return { 
       'books_list': books_list, 
       'voted' : 1 , 
       'book' : book 
       } 
else : 
    return {'books_list': books_list}