Frage

Ich vertraue mich nur mit Kolben, WTFORMS (und FLASH-WTF).Ich fühle mich, als würde ich etwas vermissen.

nach dem wtforms docs "Ihr Formularfeld HTML kann seinFür Sie generiert, aber wir lassen Sie es in Ihren Vorlagen anpassen. Dadurch können Sie die Trennung von Code und Präsentation aufrechterhalten und diese unordentlichen Parameter aus Ihrem Python-Code behalten. "

Die vorgeschlagene Methode zum Modellieren von HTML-Funkeingängen lautet:

generasacodicetagpre.

.... und der vorgeschlagene Weg zur Vorlage HTML-Funkeingaben ist:

generasacodicetagpre.

Mit diesem Ansatz ist nicht die Auswahlmöglichkeiten ", die eine Folge von (Wert, Etiketten-) Paaren ist," Mischen der Präsentation mit den Modellen?

ist eine Möglichkeit, das Etikett in die Vorlage zu bewegen und mit dem Wert zu übereinstimmen?

War es hilfreich?

Lösung

Interessante Frage. Wenn wir in Bezug auf das MVC-Muster denken, denke ich, dass die Liste der Auswahlmöglichkeiten, die in einem Dropdown gehen, in das Modell gehören, nicht in der Ansicht. Ich hätte also nicht diese Entscheidungen, die vom Designer in der Vorlage definiert wurden. Ich glaube, wir stimmen damit einverstanden, richtig?

mit der Liste der in der Form festgelegten Auswahlmöglichkeiten wie in Ihrem Beispiel ist besser, aber es ist auch nicht ideal. Vermutlich haben Sie ein Language-Modell oder eine ähnliche Entität, richtig? Dieses Modell ist die Behörde für gültige Programmiersprache, sodass derjenige derjenige sein sollte, der die Liste der gültigen Auswahlmöglichkeiten an jedermann bietet, sei es ein Formular oder ein anderes Subsystem.

Wie Sie sich in Ihrer Frage erwähnen, verfügt jede Auswahl über einen internen Namen und einen Anzeigenamen. Und da wir über Anzeigetafeln sprechen, vergessen Sie nicht, dass der u'Programming Language'-Titel für Ihr Feld in dieselbe Kategorie von Anzeigesteinen fällt. Sollten diese Saiten in der Verantwortung des Vorlagendesigners liegen? Ich weiß nicht, dass dies ein grauer Bereich zwischen Modell und Präsentation ist. Ich denke, der Designer sollte Autorität darüber haben, wie Dinge aussehen, aber nicht auf den Inhalt.

Wenn Sie mehr Kontrolle haben wollten, wie diese Display-Saiten aussehen, können Sie ein Übersetzungs-Toolkit wie Getttext verwenden (zum Beispiel durch Flasche-Babel). Wenn Ihre Anwendung einen Text über GETTEXT rendert, können Sie beliebige Zeichenfolgen von dem Code oder der Vorlage in andere Saiten zuordnen. Dies wird verwendet, um in andere Sprachen zu übersetzen, aber Sie können es auch verwenden, um die separate Steuerung in der Saiten in der Muttersprache des Antrags anzuzeigen. Die Mapping erfolgt in einer externen Datendatei, daher denke ich, dass dies die Unabhängigkeit erreicht, nach der Sie suchen.

Andere Tipps

aus rein theoretischer Sicht scheint eine gute Idee zu sein.Wenn Sie das Etikett mit dem tatsächlichen Wert in der Vorlage anschließen müssten, bedeutet dies, dass dies eine Geschäftslogik in der Vorlage hat.

Außerdem sollten Sie den genauen Code dafür vorstellen?Es würde einen Subfield-Kontext innerhalb der Anweisung des Beschriftungsauftrags erfordern.Ich kann mir nicht vorstellen, dass der Code in der Vorlage gut aussieht.Und wäre es Teil der Präsentationslogik, wie es sollte?

Hier ist die Lösung, mit der ich kam (um die Trennung aufrechtzuerhalten).Es kann überkill sein, aber ich werde es ausprobieren und sehen, wie es skaliert.

in forms.py:

generasacodicetagpre.

Dann habe ich eine Datei im Ordner Templates erstellt, die Constants.py:

generasacodicetagpre.

hoffe es hilft (und arbeitet)

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