Frage

Hat Django alle Template-Tags gemeinsamen HTML-Markup zu generieren? Zum Beispiel, ich weiß, dass ich eine URL bekommen kann mit

{% url mapper.views.foo %}

Aber das gibt mir nur die URL und nicht den HTML-Code den Link zu erstellen. Hat Django haben etwas ähnlich wie Rails' link_to Helfer? Ich fand django-Helfer aber da dies eine gemeinsame Sache, die ich dachte, Django etwas hätte eingebaut.

War es hilfreich?

Lösung

Nein, es nicht.

James Bennett beantwortet eine ähnliche Frage eine Weile zurück, über Rails integrierten JavaScript-Helfer.

Es ist wirklich unwahrscheinlich, dass Django jemals haben ‚Helfer‘ Funktionalität eingebaut. Der Grund, wenn ich richtig verstehe, hat mit Djangos Kernphilosophie zu halten Dinge schreiben Sie Ihre eigene Tags / Filter das tat, was man wollte. Ich bin meistens ein Designer selbst, und ich habe in der Lage gewesen, zusammen ein paar benutzerdefinierten Tags zu setzen, die wie ein Zauber funktionierten.

Andere Tipps

Der Zweck des Helfers ist nicht, wie andere hier bedeuten, Entwicklern zu helfen, die nicht wissen, wie HTML zu schreiben. Der Zweck ist, ein gemeinsame Funktionalität kapseln - so dass Sie die gleiche Sache tausendmal nicht schreiben müssen -. Und an einen einzigen Ort zu schaffen, gemeinsamen HTML in Ihrer App zum Bearbeiten

Es ist der gleiche Grund, Vorlagen und SSI sind nützlich - nicht, weil die Leute nicht wissen, wie die HTML in ihren Kopf- und Fußzeilen zu schreiben, aber manchmal will man es schreiben nur einmal

.
  

EG. Was passiert, wenn / wenn HTML 5   schließlich umgesetzt und Django ist   Erzeugen von HTML 4 oder XHTML-Markup?

Das gleiche, was passiert, wenn HTML 5 implementiert ist und alle Ihre Vorlagen sind in repetitiven HTML geschrieben, außer viel einfacher.

Die anderen Beiträge beantwortet haben bereits die Frage, die Anbindung an die Dokumentation auf individuelle Template-Tags ; Sie können Tags und Filter verwenden, um Ihre eigenen zu bauen, aber nein, es gibt keine eingebaut.

es tut schauen, wie sie eingebaut sind, aber hier ist ein paar Schnipsel. es sieht aus wie es recht einfach sein würde, diese Helfer zu erstellen:

http://www.djangosnippets.org/snippets/441/

Hier ist eine Liste aller Template-Tags und Filter in Django gebaut . Django Kern hat nicht so viele HTML-Helfer wie Rails, weil Django Beiträger angenommen, dass Web-Entwickler HTML sehr gut kennen. Wie durch saturdaypalace erwähnte, ist es sehr unwahrscheinlich, dass für AJAX Helfer Django hinzugefügt werden, weil es zu koppeln Django mit einer bestimmten JavaScript-Bibliothek führen würde.

Es ist sehr einfach zu schreiben Sie Ihre eigenen Template-Tags in Django (oft brauchen Sie nur eine Funktion, ähnlich zu Rails definieren). Sie könnten die meisten Rails Helfer in Django während eines Tages neu implementieren oder zwei.

Ich wette, wenn es eine Zustimmung wäre, was gemeinsame html , gäbe es Helfer Modul sein, nur der Vollständigkeit halber (oder weil andere haben es). ;)

Other than that, ist Django Template-System vor allem für HTML Menschen gemacht, die bereits wissen, wie p, img und a-Tags zu schreiben und brauchen keine Helfer dafür. Auf der anderen Seite gibt es Python-Entwickler, den Code schreiben, und egal, ob die Variable sie in Zusammenhang gebracht wird durch div oder durch span (perfektes Beispiel für Trennung von Bedenken Paradigma) eingeschlossen. Wenn Sie diese beiden Welten haben müssen, die verbunden werden sollen, müssen Sie selbst es tun (oder anderen Code suchen).

Dies wird nicht direkt auf die Frage beantworten, aber warum nicht <a href="{% url mapper.views.foo %}">foo</a> in Vorlage dann?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top