如何重定向到django中的上一页?
问题描述:
我是新来的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 我想它重定向到前一页,这是书/
任何想法,请提前
答
解决
太感谢我所做的是增加在显示书籍的同一视图内进行投票处理,并使用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}