Django,当单个模型变得庞大时模型分裂?

时间:2017-05-16 02:52:18

标签: python django django-models

我已经将models.py分解为单独的模型文件。

模型文件之一变得越来越大,我想将它分开,但不知道如何。

我能想到的一种方法是将方法分解为几个类(作为mixins)并继承它们。但不确定这是不是最佳方式。

  • 编辑,

这是可能的重复问题。

当单个模型(例如Book)变大时,如何将其拆分?

可能重复的问题并没有提出问题,也没有回答。

1 个答案:

答案 0 :(得分:0)

Mixins听起来好像很好地解决了你的问题。您可以将另一个文件放在名为mixins.py的models目录中,并执行以下操作:

models / mixins.py

class BookMixin(object):
    def is_in_print(self):
        ...
    def calculate_cost(self, number_ordered):
        return self.price * number_ordered

<强>模型/ book.py

from .mixins import BookMixin

class Book(BookMixin, models.Model):
    price = models.DecimalField()
    title = ...

然后在您看来,您可以执行以下操作:

purchased_book = Book.objects.get(...)
subtotal = purchased_book.calculate_cost(3)