2009-11-29 37 views
5

我想知道如果我可以在django的另一個視圖內顯示視圖。Django,在另一個視圖中顯示視圖?

這就是我試圖做的:

def displayRow(request, row_id): 
    row = Event.objects.get(pk=row_id) 
    return render_to_response('row.html', {'row': row}) 

def listEventsSummary(request): 
    listEventsSummary = Event.objects.all().order_by('-id')[:20] 
    response = '' 
    for event in listEventsSummary: 
     response += str(displayRow('',event.id)) 
    return HttpResponse(response) 

輸出看起來像我所期待的,但我曾與一個空字符串替換請求值。這是好的還是有更好的方法來做到這一點?

回答

4

http響應包含html以及其他任何內容的標題,所以你不能像字符串一樣添加它們。

,如果你想模塊化您的視圖功能,然後讓子過程調用返回的字符串,然後你可以做到這一點,你提出

的方式也許在你的情況下,將更好地把顯示成行循環模板,那麼你不需要在你的主視圖中使用子視圖和循環。

def listEventsSummary(request): 
    listEventsSummary = Event.objects.all().order_by('-id')[:20] 
    return render_to_response('stuff.html',{'events':listEventsSummary}) 

和stuff.html

{% for event in events %} 
    <p>{{event.date}} and whatever else...</p> 
{% endfor %} 
+0

是啊,我想知道如何刪除頁眉;-) 感謝交代 – Roch 2009-11-29 00:44:47

相關問題