2009-11-29 7 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

関連する問題