2012-07-17 2 views
1

은 내가 투표 응용 프로그램에서 일하고 있어요django에서 이전 페이지로 리디렉션하는 방법은 무엇입니까?

을 장고에 새로 온 사람, 나는 내가 그것을 떠나지 않고 페이지를 새로 고침 할 것을 의미 투표

를 주조 한 후 동일한 페이지에 머물 필요 내 view.py 성공 메시지 여기

입니다 표시 (I 설정하고 이중 투표를 방지하기 위해 쿠키를 확인) :

: 여기
@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

에서 감사 제발 책을 표시하는 동일한보기 내에서 투표 처리 및 투표 버튼을 클릭했을 때를 감지하기 위해 사후 조건을 사용합니다.

@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} 
관련 문제