2013-02-21 17 views
8

Tôi có chế độ xem thực hiện tác vụ nào đó và quay lại chế độ xem khác, hiển thị mẫu hello.html.Làm thế nào để chuyển một tin nhắn từ HttpResponseRedirect ở Django?

def 1stview(request): 
    #Do this 
    #Do that 
    return HttpResponseRedirect('/success/') 

def success(request): 
    return render_to_response('overview.html', {'overview_files': b, 'total_files':total_files, 'total_size':total_size, 'username': username}, context_instance=RequestContext(request)) 

Sau khi hoàn tất thành công chế độ xem thứ nhất, tôi muốn chuyển thông báo 'Thành công' trong overview.html. Có rất nhiều chuyển hướng đến chế độ xem success. Tôi chỉ muốn chuyển tin nhắn khi đi qua chế độ xem thứ nhất. Làm thế nào tôi có thể làm điều đó?

+1

Bạn có thể thêm tham số GET để chuyển hướng, như vậy 'trở HttpResponseRedirect ('/thành công /? status = thành công ') '. Và trong hàm thành công, bạn có thể lấy tham số đó: 'request.GET.get ('status', None)' – stalk

Trả lời

1
from django.contrib import messages 
messages.success(request, _('Thank you')) 
return redirect('/whatever/') 
0

Hãy cẩn thận khi sử dụng các url i18n! Nếu bạn sử dụng liên kết như /whatever/ nhưng sử dụng quốc tế hóa, nó sẽ chuyển hướng đến /en/whatever/, do đó mất thông báo trong yêu cầu. Nếu bạn sử dụng quốc tế, luôn luôn vượt qua ngôn ngữ để URL:

from django.contrib import messages 
from django.utils.translation import get_language 

messages.success(request, _('Thank you')) 
return redirect('/%s/whatever/' % get_language()) 

Chi phí cho tôi một vài giờ để hiểu được điều này ...

Các vấn đề liên quan