Django, 다른보기에서보기를 표시합니까?
-
06-07-2019 - |
문제
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)
출력은 내가 기대했던 것 같지만 요청 값을 빈 문자열로 바꿔야했습니다. 괜찮습니까 아니면 더 좋은 방법이 있습니까?
해결책
HTTP 응답에는 HTML과 함께 헤더가 포함되어 있으므로 문자열처럼 추가 할 수 없습니다.
뷰 함수를 모듈화하려면 하위 처리 통화 반환 문자열이 있으면 제안하는 방식으로 수행 할 수 있습니다.
아마도 당신의 경우 템플릿에 행을 보여주는 루프를 넣는 것이 더 나을 것입니다. 그러면 메인 뷰에서 하위 뷰와 루프가 필요하지 않습니다.
def listEventsSummary(request):
listEventsSummary = Event.objects.all().order_by('-id')[:20]
return render_to_response('stuff.html',{'events':listEventsSummary})
그리고 witts.html
{% for event in events %}
<p>{{event.date}} and whatever else...</p>
{% endfor %}
제휴하지 않습니다 StackOverflow