We welcome edits that make the post easier to understand and more valuable for readers. Because community members review edits, please try to make the post substantially better than how you found it, for example, by fixing grammar or adding additional resources and hyperlinks.
It appears that in Djangomodels.Model it does not use__metaclass__ but ratherclass Model(metaclass=ModelBase): to reference aModelBase class which then does the aforementioned metaclass magic. Great post! Here's the Django source:github.com/django/django/blob/master/django/db/models/…
<<Be careful here that the__metaclass__ attribute will not be inherited, the metaclass of the parent (Bar.__class__) will be. IfBar used a__metaclass__ attribute that createdBar withtype() (and nottype.__new__()), the subclasses will not inherit that behavior.>> -- Could you/someone please explain a bit deeper this passage?
Now you wonder why the heck is it written in lowercase, and not Type? - well because it's implemented in C - it's the same reason defaultdict is lowercase while OrderedDict (in python 2) is normal CamelCase
It's a community wiki answer (so, those who commented with corrections/improvements might consider editing their comments into the answer, if they're sure they are correct).
A tag is a keyword or label that categorizes your question with other, similar questions. Choose one or more (up to 5) tags that will help answerers to find and interpret your question.
complete the sentence:my question is about...
use tags that describe things or concepts that areessential, not incidental to your question