recursive Daten in django Templates benutzten...

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Benutzeravatar
jens
Moderator
Beiträge: 8483
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Donnerstag 30. Juli 2009, 08:25

Ich halte das nicht für eine schlechte Idee. Denn normalerweise ist include ehr für einmaliges einbinden da.

Mit einer "recurse" Funktion braucht man das Template nicht mehr aufzuteilen. Wäre auch wahrscheinlich schneller.

Im Netz gibt es auch Beispiele. Aber richtig Funktioniert haben die bei mir nicht. So bleib ich lieber bei der include Lösung.

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
Defnull
User
Beiträge: 778
Registriert: Donnerstag 18. Juni 2009, 22:09
Wohnort: Göttingen
Kontaktdaten:

Donnerstag 30. Juli 2009, 08:34

Die "recurse" Funktion ist redundant (also überflüssig), da man exakt das gleiche Verhalten mit "include template_name" erreichen kann. Warum "include" nur für einmaliges Einfügen da sein soll, kann ich nicht nach vollziehen. Besonders nicht im Template-Zusammenhang, wo es doch eher um Textbausteine und weniger um Bibliotheken geht.

Aber im Endeffekt ist und bleibt sowas Geschmackssache. Nicht umsonst gibt es eine so große Auswahl an Template Engines :) Ich find meine eigene eh am besten ;)
Bottle: Micro Web Framework + Development Blog
Benutzeravatar
jens
Moderator
Beiträge: 8483
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Donnerstag 30. Juli 2009, 09:09

Wie ich schon geschrieben hab, include arbeitet halt anders, man muß dazu zwei template dateien anlegen. Mit einer "recurse" Funktion kann man alles in einem Template machen, somit ist es schon was anderes.

Aber egal. Die Django Jungs mögen das wohl nicht oder brauchen es nicht.

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
Defnull
User
Beiträge: 778
Registriert: Donnerstag 18. Juni 2009, 22:09
Wohnort: Göttingen
Kontaktdaten:

Donnerstag 30. Juli 2009, 11:01

Geht anscheinend auch mit einer Datei.
http://blog.elsdoerfer.name/2008/01/22/ ... templates/
Bottle: Micro Web Framework + Development Blog
lunar

Donnerstag 30. Juli 2009, 11:11

Wie hast du das denn da raus gelesen?! Er schreibt nur, dass man den Dateinamen der zweiten Daten als Variable übergeben kann, um die Evaluierung bis zur Laufzeit hinauszuzögern.
Benutzeravatar
Defnull
User
Beiträge: 778
Registriert: Donnerstag 18. Juni 2009, 22:09
Wohnort: Göttingen
Kontaktdaten:

Donnerstag 30. Juli 2009, 11:23

Nein, er beschreibt, wie man die Endlos-Schleife beim auflösen rekursiver includes umgehen kann.
Bottle: Micro Web Framework + Development Blog
lunar

Donnerstag 30. Juli 2009, 11:38

Man umgeht die Endlosschleife dadurch, dass die Auswertung des zweiten Templates bis zur Laufzeit herausgezögert wird, so dass der Ausführungskontext zur Verfügung steht und man die Rekursion abbrechen kann.

Aber wie dem auch sei, ich kann da nirgendwo lesen, dass es "anscheinend auch mit einer Datei" gehen sollte ... das Beispiel benötigt auch zwei Templates für die Rekursion.
Benutzeravatar
jens
Moderator
Beiträge: 8483
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Donnerstag 30. Juli 2009, 19:38

Super das ihr das angesprochen habt!

Das war nämlich mein ursprüngliches Problem mit Exception RuntimeError: 'maximum recursion depth exceeded...

Das dumme ist, man sieht es nur bei settings.TEMPLATE_DEBUG == True ansonsten wird nur eine warnings ausgelöst!

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten