Schreibgeschützt
Flask (und andere Frameworks) können WTForm nutzen um das erstellen von Formularen zu vereinfachen.
class InvoiceForm(FlaskForm):
customer = StringField("Kunde")
Die Feld-Klassen (hier "StringField") haben in der Regel nur Attribute die man in der Regel (also das minimale Set) für dieses HTML-Element setzen wird - hier also den Namen, man könnte auch einen Anzeige-Wert setzen oder einen Default-Wert.
In meinem Fall fehlte mir das Attribut um ein Feld "readonly" zu machen.
class InvoiceForm(FlaskForm):
customer = StringField("Kunde", render_kw={"readonly": "True"})
Für diese Fälle kann in jeder Feldklasse das Attribut "render_kw" gesetzt werden.
Dieses nimmt ein Ditctionary entgegen, der Key ist zu setzende HTML-Attribut und der Wert der Wert der diesem HTML-Attribut zugewiesen werden soll.
Das resultierende HTM sähe also so aus:
<input id="customer" name="customer" type="text" readonly="True"></input>
"render_kw" kann also benutzt werden um beliebige zusätzliche Attribute in einem Form-Element zu setzen.
class InvoiceForm(FlaskForm):
customer = StringField("Kunde", render_kw={"readonly": "True", "whatever":"whoever"})
ergibt:
<input id="customer" name="customer" type="text" readonly="True" whatever="whoever"></input>
|
⚠
|
Das Setzen von readonly in render_kw wirkt sich nur in der Darstellung im Browser aus. |