2016-03-26 2 views
0

I definiert ist web2py bin mit einem SQLFORM zu schaffen, die einige Updates (derzeit leer) Textfelder:Web2py: Wie Inhalt eines Textbereich setzen, nachdem es

form = SQLFORM(db.table, db.table(1), fields = ['blank_name'])

, die mit einem Textarea-Tag erstellt name='blank_name'. Ich möchte dann den Standardtext für diesen Textbereich auf eine Variable setzen. Also habe ich versucht,

form.element(_name='blank_name').update(_value='My default value')

aber dies setzt lediglich das ‚Wert‘ Attribut des Textbereiches auf ‚Meinen Standardwert‘. Wie kann ich den Inhalt des zuvor leeren Textfelds auf einen Wert setzen?

Antwort

1

Der einfachste Ansatz ist einfach das Feld Standard festlegen (bevor Sie das Formular erstellen):

db.table.blank_name.default = 'My default value' 

In Bezug auf den ursprünglichen Ansatz, die web2py HTML Helfer wirken wie Listen im Hinblick auf ihre Komponenten (dh Inhalte) Sie könnten also die Methoden .append oder .insert verwenden, um den Inhalt zu aktualisieren.

+0

Ich habe festgestellt, dass der Standardwert Ansatz funktioniert nur beim Erstellen einer neuen Zeile in der DB, nicht eine bestehende aktualisieren. Ich habe auch einen anderen Standard für jede aktualisierte Zeile, so dass die "Standard" -Methode unangebracht erscheint. Aber form.element (_name = 'leerer_name'). Append ("mein Text") funktioniert einwandfrei, und ich gehe davon aus, dass es bei der Validierung des Formulars weitergegeben wird. Vielen Dank dafür. – user2667066

+0

True, das Festlegen der Standardeinstellung funktioniert nicht, wenn ein vorhandener Datensatz aktualisiert wird. Sie * können * jedoch die Standardeinstellung verwenden, auch wenn Sie für jede Zeile einen anderen Wert benötigen, da das "Standard" -Attribut überall in Ihrem Code gesetzt werden kann, auch unmittelbar vor der Formularerstellungszeile (dh Sie sind nicht darauf beschränkt) Setzen Sie den Standardwert nur einmal auf einen einzelnen Wert, bei dem das Modell zuerst definiert wird. – Anthony

Verwandte Themen