Атрибуты класса Meta модели не присваиваются, а выводятся по умолчанию
Хочу реализовать абстрактный класс модели, TableFields
, для этого во вложенном классе Meta
пишу abstract = True
, однако когда импортирую класс в run.py
и обращаюсь к словарю models.TableFields.Meta.__dict__
, вижу, что 'abstract': False
.
Подскажите пожалуйста, с чем это связано?
Вот исходный код:
models.py:
from django.db import models
class TableFields(models.Model): # class <table_name>Fields
my_field = models.BigIntegerField(primary_key=True)
class Meta: # class Meta
abstract = True
run.py:
from pprint import pprint
import os
import django
os.environ['DJANGO_SETTINGS_MODULE'] = 'django_models_example.settings'
django.setup()
def run_():
from example import models
pprint(models.TableFields.Meta.__dict__)
if __name__ == "__main__":
run_()
Полный вывод программы:
mappingproxy({'__dict__': <attribute '__dict__' of 'Meta' objects>,
'__doc__': None,
'__module__': 'example.models',
'__weakref__': <attribute '__weakref__' of 'Meta' objects>,
'abstract': False})