let proxy models multiple-inherit from the same concrete base model
— at Version 4
Currently proxy models are required to have a single concrete base model class. Unfortunately this prevents me from combining several proxy subclasses of the same model. In my particular use case, I have two different apps that provide two different proxies of the standard User model. To successfully use both apps I need to create another subclass that combines the two, e.g:
class MyUser(App1User,App2User):
class Meta:
proxy = True
This gives a TypeError: "Proxy model 'MyUser' has more than one non-abstract model base class". But since App1User and App2User proxy the same underlying model, there's no ambiguity introduced by this multiple inheritance and I think it should be permitted.
Attached is a simple patch to make this work, by permitting additional concrete base classes if they are identical to the one that was already found.
The tests would need to be rewritten using unittests since this is now Django's preferred way.