문제

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 %}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top