Piramide Python - Come utilizzare le caselle di controllo ei pulsanti di opzione
Domanda
Ho provato a creare un modulo con caselle di controllo e pulsante di opzione utilizzando il framework Pyramid, ma non riesco a capire come farlo correttamente.
Sto usando pyramid_simpleform
.Finora sono stato in grado di inserire le mie caselle di controllo nel modulo utilizzando un ciclo for ma non posso selezionare nessuna casella di controllo anche se specifichi checked=True
.
% for item in groups:
${form.checkbox(name="groups",label=item, value=item, checked=True)}
% endfor
So che esiste un modo migliore per farlo.Ci sono esempi che potrei guardare.Tutti gli esempi nella documentazione di Pyramid sono semplici campi di testo.Finora non ho trovato alcun pulsante di opzione o casella di controllo.
Soluzione
Hai provato a mettere
defaults={"groups" : True}
in Form ctor, ad esempio (in pyramid_simpleform doc):
form = Form(request, MySchema, defaults={"name" : "foo"})
Altri suggerimenti
Uso FormRenderers per generare moduli e ho anche avuto problemi con le caselle di controllo.Quindi ho scritto la seguente classe che sostituisce FormRenderer da simple_form in tutte le mie viste:
# -*- coding: utf-8 -*-
from pyramid_simpleform.renderers import FormRenderer as OldFormRenderer
from webhelpers.html import tags
class FormRenderer(OldFormRenderer):
def checkbox(self, name, value="1", checked=False, label=None, id=None,
**attrs):
"""
Outputs checkbox input.
"""
id = id or name
return tags.checkbox(name, value, checked, label, id, **attrs)