2012-03-27 7 views
2

Ich versuche, Deform als Teil der Pyramide zu verwenden und habe keine Probleme, vollständig bearbeitbare oder vollständig schreibgeschützte Formulare zu erhalten, aber ich finde keine Möglichkeit, ein schreibgeschütztes Texteingabefeld zu erstellen. Der folgende Code nicht tut, was ich will, aber ich denke, Sie sollten in der Lage sein zu sehen, was ich versuche zu tun: die Nur-Lese-VorlageGibt es eine Möglichkeit, ein Deform/Collander-Formularfeld schreibgeschützt zu machen?

class UserSchema(colander.MappingSchema): 
    first_name = colander.SchemaNode(colander.String()) 
    last_name = colander.SchemaNode(colander.String()) 
    username = colander.SchemaNode(colander.String()) 
    password = colander.SchemaNode(colander.String()) 
    email = colander.SchemaNode(colander.String(), validator=colander.Email()) 
    organization_name = colander.SchemaNode(colander.String(), widget=deform.widget.TextInputWidget(readonly=True)) 

Antwort

3

Verwendung:

organization_name = colander.SchemaNode(colander.String(), missing='', widget=deform.widget.TextInputWidget(template='readonly/textinput')) 

Sie müssen definieren a missing Wert, sonst schlägt die Validierung fehl.

Deform Version 0.9.6+:

Deform seit aktualisiert und die readonly Schlüsselwort-Argument sollte wie erwartet funktionieren.

+1

Ich denke, die Übergabe von ['readonly'] (http://docs.pylonsproject.org/projects/deform/en/latest/api.html?highlight=readonly#module-deform.widget) Parameter zu Widget ist bevorzugt. Weitere Informationen finden Sie unter [Nicht validierte Felder prüfen] (http://deformdemo.repoze.org/readonly_value_nonvalidation/). –

Verwandte Themen