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.