Можно ли определить сложный класс во время выполнения в Python? - PullRequest
1 голос
/ 22 февраля 2020

Допустим, я хочу определить следующую модель в Django:

class Customer(models.Model):
    age = models.IntegerField()

    class Meta:
        managed = False
        db_table = 'Customer'

Я знаю, что могу использовать type в Python для определения классов. Например, следующий класс:

class Test(object):
    def __init__(self, x):
        self.x = x

    def printX(self):
        print self.x

Может быть определен с использованием:

def __init__(self, x):
    self.x = x

def printX(self):
    print self.x

Test = type('Test', (object,), {'__init__': __init__, 'printX': printX})

Теперь Django модели в основном являются классами, поэтому теоретически это должно быть возможно. Однако у меня есть несколько вопросов:

  • Как определить наследование от models.Model?
  • Как определить поле age?
  • Как определить Meta и атрибуты внутри него?

Есть ли способ сделать это? Спасибо за любую помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...