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)

哪种方法更好,将所有模型放在一个models.py文件中,还是每个模型一个文件?我通常将一个应用程序的所有模型保存在一个文件中,而且我从未见过将模型分开,这就是我问这个问题的原因。

4

2 回答 2

2

如果您在谈论真正的“最佳实践”,那将遵循 Django 推荐的方式并仅使用 models.py。然而,这个话题有很多意见和争论。尽管如此,我的建议是:

如果你有一个简单的应用程序,只有几个模型。坚持使用 models.py 的“Django 方式”。

如果您有一个包含大量模型和数千行代码的大型应用程序,那么将其拆分可能会更好。但是,此时,您还应该问自己为什么您的应用程序如此庞大,以及是否可以将任何东西分解到辅助应用程序中。

总而言之,我个人的观点是,将模型分成单独的文件绝不是一个好主意。在某些情况下,它可能会导致问题,老实说,我看不到真正合理的用例。通常,如果您的应用程序大到足以保证这样做,这实际上表明您将太多功能集中在一起,这些功能最好委派给其他应用程序。

于 2012-05-01T17:37:50.263 回答
1

最佳做法是将它们放在一个文件中。例如,查看 django 源代码。

您从未见过它的原因是因为它实际上从未完成过。

如果你能以某种方式证明它是合理的,那么一定要这样做,但这绝对不是推荐的结构。当文件变得太大/可以逻辑分离时,人们开始探索拆分模型。

于 2012-05-01T17:37:11.783 回答