Let's say there are Admin and non-Admin users. An Admin user would always be able to edit the values in the select, whereas a non-Admin would be able to readonly.
When using selects with multiple values, we must use colander.Set() for the typ of the colander.SchemaNode() as demonstrated in:
Let's say there are Admin and non-Admin users. An Admin user would always be able to edit the values in the select, whereas a non-Admin would be able to readonly.
When using selects with multiple values, we must use
colander.Set()
for thetyp
of thecolander.SchemaNode()
as demonstrated in:However when we want to show them as readonly by adding
readonly=True
to the node, then the values do not render.If we change the
typ
tocolander.String()
, then the values will render, but then we lose the editing ofcolander.Set()
.To workaround this dilemma, we need to use a deferred
typ
.Ideally when readonly=True for a select widget that has a set of values, then those values would be rendered.