У меня есть определенная структура классов в моем приложении, которая в настоящее время использует django для презентации. Я вообще не использовал слой модели, - подпрограммы взаимодействия с базой данных написаны от руки.
Я, однако, рассматриваю возможность фактического использования django в полном объеме и фактического использования уровня абстракции базы данных. Вопрос в том, как наилучшим образом интегрировать мою существующую структуру классов со слоем модели.
Пример класса:
class UpperClass(base):
def __init__(self, attr1, attr2):
self.attr1 = attr1
self.attr2 = attr2
# attr1 and attr2 are actually instances of, say,
# CustomType1 and CustomType2
Итак, вот как я собираюсь сопоставить это с моделью django:
class UpperClass(models.Model):
attr1 = CustomType1Field(...)
attr2 = CustomType2Field(...)
Это достаточно просто - все материалы по сериализации и проверке уже написаны, так что совсем не составит труда создать классы пользовательских полей для CustomType1 и CustomType2.
Реальный вопрос в том, куда я помещаю пользовательское (не связанное с базой данных) поведение фактического UpperClass. В моем понимании, существуют модели для «ввода и вывода данных из базы данных», но куда же ведет себя такое поведение? Встраивать ли не связанные с базой данных методы в экземпляры модели UpperClass? На самом деле, я в растерянности здесь. Надеюсь, что это имеет хотя бы частичный смысл для вас.