Модели Django используют метакласс для изменения поведения нормального класса.
Используйте dir(Question)
, и вы увидите, что теперь есть различные атрибуты этого класса. Это обычное поведение только для моделей Django.
Если вам интересно, вы можете изучить метод метакласса __new__
, но он делает lot работы, специфичной для задач реляционного сопоставления объектов.