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.

È stato utile?

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)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top