2014-12-06 65 views
0

如何使用django中的變量進行重定向? 請指導我,謝謝。如何使用django中的變量進行重定向?

urls.py

urlpatterns = patterns('', 
    url(r'^$', views.index, name='index'), 
    url(r'^computer/$', views.computer, name='computer'), 
    url(r'^result/$', views.result, name='result'), 
) 

這是我原來的views.py:

def computer(request): 
    result = Computer.objects.order_by('?')[:1] 
    return render(request, 'many/result.html',{'result':result}) 

而且我發現我的問題,使不會重定向到moneymany/result.html的URL,
所以如果用戶刷新,它會在同一頁面上得到另一個結果。

所以我必須使用重定向到many/result.html
什麼是在Django中重定向的常用方法,我必須通過變量result? 我試試這個,但沒有工作:

​​

回答

3

如何使用重定向。

from django.shortcuts import redirect 

def computer(request): 
    result = Computer.objects.order_by('?')[:1] 
    return redirect('view-name-you-want', { 'result'=result }) 
+0

有error'''''ascii」編解碼器不能解碼字節0xe6'''' – user2492364 2014-12-06 11:15:24

+0

你應該不下來投給了正確的答案 – skzryzg 2014-12-06 11:59:42

+0

這真的不是我的傢伙!你知道如何解決錯誤'''''ascii'編解碼器無法解碼字節0xe6''''? – user2492364 2014-12-06 12:20:13

2

你需要

url(r'^result/(?P<result>[^\/]*)/$', views.result, name='result'), 

return redirect(reverse('many:result', kwargs={ 'result': result })) 

或(不改變URL)

return redirect('/result/?p=%s' % result) 

,如果你想MAI在重定向時ntain POST數據,那麼這意味着您的設計不太好。引用Lukasz:

如果您遇到此類問題,您可能會遇到輕微的機會,因爲您的設計過於複雜。這是POST 數據無法與重定向一起使用的HTTP的限制。