2013-10-16 82 views
0

所以我有一個顯示基於對從主頁搜索的人的一些數據的視圖調用視圖:的Django從另一種觀點認爲

def film_chart_view(request): 
    if 'q' in request.GET and request.GET['q']: 
     q = request.GET['q'] 
     # grab the first person on the list 
     try: 
      person_search = Person.objects.filter(short = q)[0] 
      filminfo = filmInfo(person_search.film_set.all()) 
      film_graph_data = person_search.film_set.all().order_by('date') 
     #Step 1: Create a DataPool 
      return render_to_response('home/search_results.html',{'query': q, 'high': filminfo[0], 
       'graph_data': film_graph_data}, RequestContext(request)) 
     except IndexError: 
      return render_to_response('home/not_found.html',{'query': q}, RequestContext(request)) 

在主頁上我也希望有一個隨機按鈕顯示來自數據庫中隨機人員的一些數據並用上述視圖顯示。到目前爲止,我有這樣的觀點:

def random_person(request): 
    # 1282302 is max number of people currently 
    get_random = random.randint(1,1282302) 
    get_person = Person.objects.get(pk=get_random) 
    person_name = get_person.full 

,但我不知道怎麼那麼它重定向到film_chart_view完成它。

回答

1

您可以從隨機視圖適當的URL重定向到指定的視圖

def random_person(request): 
    # 1282302 is max number of people currently 
    get_random = random.randint(1,1282302) 
    get_person = Person.objects.get(pk=get_random) 
    person_name = get_person.full 
    return HttpResponseRedirect(reverse('film_chart_view')+"?q="+get_person.short) 
+0

我越來越: 「NoReverseMatch在/隨機/ 反向的‘film_chart_view’與參數‘()’和關鍵字參數'{}' 未找到。」 我在urls.py的網址是: url(r'^ random/$','home.views.random_person'), – dl8

+0

@ user2027556,嘗試將它改爲'HttpResponseRedirect(reverse('home.views。 film_chart_view')+ 「?q =」 + get_person.short)'。我假設你也爲此添加了網址。 – Rohan

+0

我得到「ValueError at/random/ 視圖home.views.random_person沒有返回HttpResponse對象。」現在 – dl8

相關問題