Pergunta

Eu gostaria de saber se eu posso exibir uma visão dentro de outro ponto de vista com Django.

Isto é o que eu tentei fazer:

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)

Os olhares saída gostar do que eu estava esperando, mas eu tive que substituir o valor pedido por uma cadeia vazia. É que bem ou há uma maneira melhor de fazer isso?

Foi útil?

Solução

http resposta contém cabeçalhos junto com html, ou qualquer outra coisa, então você não pode simplesmente adicionar-las como strings.

Se você quiser modularizar sua função de visualização, em seguida, ter chamadas sub-procedimento de devolução cordas e então você pode fazê-lo da maneira que você propor

Provavelmente no seu caso seria melhor colocar um loop mostrando linhas para o modelo, então você não vai precisar do sub-view e do laço em sua janela principal.

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

e em stuff.html

{% for event in events %}
    <p>{{event.date}} and whatever else...</p>
{% endfor %}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top