2017-05-16 10 views
-3

私はすでにmodels.pyを別々のモデルファイルに分解しています。Django、単一のモデルが巨大になっているときのモデル分割?

モデルファイルの1つが大きくなってきています。私はそれを分解したいのですが、どのように分かっていません。

私が考えることができる1つの方法は、メソッドをいくつかのクラス(ミックスインとして)に分割し、それらを継承することです。それが最善の方法であるかどうかはわかりません。

  • 編集、

これは、重複の可能性とは別の問題です。

単一のモデル(ブックなど)が大きくなると、どのように分割しますか?

可能な重複は質問も回答もしません。

+1

[models.pyが巨大化する可能性があります。何が最善の方法ですか?](http://stackoverflow.com/questions/1160579/models-py-getting-huge-what-is-the- –

+0

@AbijithMg:あなたのモデル(models.pyではない)が大きくなったときに私の質問に対する答えを見つけることができません。どのように対処していますか? – eugene

+0

ロジックをビューの1つに分割することができます。 –

答えて

0

Mixinsはあなたの問題をうまく解決するように思えます。あなたはmixins.pyと呼ばれる、あなたのモデルのディレクトリに別のファイルを入れて、次のような何かを行うことができます: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) 
関連する問題