Hey,

While fiddling with django I noticed it would be trivial to add support for 
shadowing fields from abstract base models. As abstract fields don't exist 
in the database, you simply have to remove the check that reports name 
clashes for abstract models, and no longer override the field. 

This would allow you to both override fields from third-party abstract 
models (e.g. change the username length of AbstractUser), and to override 
fields of common abstract models on a per-model basis. Previously you'd 
have to copy the original abstract model just to change a single field, or 
alter the field after the model definition. The first approach violates the 
DRY principle, the second approach can introduce subtle bugs if the field 
is somehow used before you changed it (rare, but it can happen). 

This patch 
<https://github.com/knbk/django/commit/e8347457bccaeab11f9624b01c57824f4511da6c>
 adds 
the feature. It seems to work correctly when using the models and 
creating/applying migrations, and passes the complete test suite. 

What do you guys think about this feature?

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers  (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-developers+unsubscr...@googlegroups.com.
To post to this group, send email to django-developers@googlegroups.com.
Visit this group at http://groups.google.com/group/django-developers.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-developers/f846521f-8a16-41c7-9998-2bea7c93b3dd%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to