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.