I don't know how you'd integrate it with Colander, but generally you'd use a dict subclass with a __setitem__ method that raises an exception for read-only keys. Lists and classes can do something similar. On Tue, Sep 11, 2018 at 3:07 AM Dennis Ljungmark <[email protected]> wrote: > > TL/DR: > How do I make a Sequence where already populated fields are Read Only, and > new fields permit user input? > > > I have a rather complex schema with several hierarchies deep. At the lowest > level, are a Sequence of Mappings as follows: > > > class Thingie(colander.MappingSchema): > name = colander.SchemaNode( > colander.String(), > missing=colander.required, > validator=name_validator, > ) > > port = colander.SchemaNode( > colander.String(), > missing=colander.required, > validator=validate_port, > ) > > class MidLevel(colander.MappingSchema): > > @colander.instantiate( > missing=[], > title="Thingie definitions", > validator=colander.All(validate_unique_names, > validate_no_duped_ports)) > > > class thingies(colander.SequenceSchema): > meter = Thingie( > title="Thingie", > ) > > > > Now, I'd want to make _new_ entries use a read/Write field for the name, but > turn it read-only when bound with data from the database backend. This > _seems_ at first view as if it should be a simple thing ( using `bind`), but > so far, I've not succeeded. > > > I think I'm on a wrong track with binding, but I'm not sure where to go here. > > > Any suggestions would be welcome. > > ( Please excuse using the web form, seems my email subscription is held for > moderation) > > -- > You received this message because you are subscribed to the Google Groups > "pylons-discuss" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/pylons-discuss/7a80f3d2-e4bc-46a5-bffe-16268fef947f%40googlegroups.com. > For more options, visit https://groups.google.com/d/optout.
-- Mike Orr <[email protected]> -- You received this message because you are subscribed to the Google Groups "pylons-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/pylons-discuss/CAH9f%3Duo1_X%2BAR5EQ%3D%3DT_10JGatA3JGMcYhyEC99LC%2B85x3ivhQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
