> > No, the whole point is to write a system for adding extensions to > META. The problem currently is that a model's options aren't > extensible; my idea keeps metadata with metadata.
Do you really think that the fields themselves *aren't* metadata? > That's a very good point. > > However, I still think there's a value in clarity. Consider:: > > class Something(Model): > name = CharField(maxlength=100) > > dummy = WriteOnly() > > versus: > > class Something(Model): > name = CharField(maxlength=100) > > class META: > write_only = True > > See what I'm talking about? The issue is that we want to get *away* from magic, and make everything work in a uniform way. The only way to do what you are proposing is to add some kind of registration mechanism so that things get to scan through META. Its really implicit, and it means that someone reading your code has to know about the wierd magic of how things get looked up in META, then try to work out which extension provided which attribute names... The way that it works now, everything is standard python resolution, object creation, with the single addition that attributes get to poke at the class if they want to. Anyway, the following look perfectly reasonable and clear to me: class Something(Model): name = CharField(maxlength=100) readability = WriteOnly() class Something(Model): name = CharField(maxlength=100) storage = RDFStorage()