0

私は次のコードを読んでいましたmodelsが、各クラス/モデルに個別のファイルがあり、それが にインポートされるように構造化されていました__init__.py。例えば:

# __init__.py
from service            import Service
from note               import Note
etc...

# service.py (one example of the imports)
from django.db import models

class Service(models.Model):

    #: service provider name (e.g. Hulu)
    name                = models.CharField(max_length=64, verbose_name="Title Name", unique=True)

    def __unicode__(self):
        return u'Service id=%s, name=%s' % (self.pk, self.name)

すべてのモデルを 1 つのmodels.pyファイルに格納する方法と、モデルごとに 1 つのファイルを格納する方法のどちらが良い方法ですか? 私は通常、アプリのすべてのモデルを 1 つのファイルに保存していますが、モデルが分離されているのを見たことがないため、この質問をしています。

4

2 に答える 2

2

真の「ベスト プラクティス」について話している場合、それは Django が推奨する方法に従い、models.py のみを使用することになります。ただし、このトピックには多くの意見と議論があります。それにもかかわらず、私の推奨事項:

少数のモデルしかない単純なアプリを使用している場合。models.py だけの "Django-way" に固執します。

多数のモデルと数千行のコードを含む巨大なアプリがある場合は、分割する方がよいでしょう。ただし、この時点で、アプリが非常に巨大な理由と、補助アプリに分解できるものがあるかどうかについても自問する必要があります。

要するに、私の個人的な意見では、モデルを個別のファイルに分割することは決して良い考えではありません。場合によっては問題を引き起こす可能性があり、正直なところ、それが本当に正当化されるユースケースは見当たりません。通常、アプリがこれを実行するのに十分な大きさである場合、実際には、他のアプリに委任した方がよい機能をまとめすぎていることを示しています。

于 2012-05-01T17:37:50.263 に答える
1

ベスト プラクティスは、それらを 1 つのファイルに入れることです。たとえば、django のソースを見てください。

あなたがそれを見たことがない理由は、それが実際に行われたことがないからです.

どういうわけかそれを正当化できる場合は、ぜひそれを実行してください。ただし、推奨される構造ではありません。ファイルが大きくなりすぎたり、論理的に分離できるようになると、人々はモデルの分割を検討し始めます。

于 2012-05-01T17:37:11.783 に答える