> 
> 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()

Reply via email to