Frage

Ich möchte wissen, ob ich einen Blick in eine andere Ansicht mit django anzeigen kann.

Das ist, was ich versucht zu tun:

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)

Die Ausgabe sieht wie das, was ich erwartet hatte, aber ich hatte, um den Anforderungswert mit einem leeren String zu ersetzen. Ist das in Ordnung oder gibt es einen besseren Weg, es zu tun?

War es hilfreich?

Lösung

http Antwort enthält Header zusammen mit html, oder irgendetwas anderes, so dass Sie sie nicht nur wie Strings addieren.

Wenn Sie die Ansicht Funktion modularisieren wollen, dann haben Unterprozeduraufrufe Strings zurückgeben und dann können Sie es die Art und Weise tun Sie schlagen

Wahrscheinlich in Ihrem Fall wäre es besser, eine Schleife zu setzen Zeilen in die Vorlage zeigt, dann werden Sie nicht brauchen die Untersicht und die Schleife in der Hauptansicht.

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

und in stuff.html

{% for event in events %}
    <p>{{event.date}} and whatever else...</p>
{% endfor %}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top