【发布时间】:2011-08-22 23:15:56
【问题描述】:
我有点像 Django 初学者,并且一直在尝试尽可能地解耦我的应用程序,并将其构建成尽可能小的可重用部分。试图遵循 James Bennett 的构建 re-usable apps 的策略。考虑到这一点,我遇到了这个问题。
假设我有一个存储电影信息的应用:
代码如下所示:
class Movie(models.Model):
name = models.CharField(max_length=255)
...
现在,如果我想添加评分,我可以使用 django-rating 并简单地向我的模型添加一个字段:
class Movie(models.Model):
name = models.CharField(max_length=255)
rating = RatingField(range=5)
...
这本质上意味着我的 Movie 应用程序现在依赖于 django-ratings,如果我想重新使用它,但不再需要评级,我仍然需要安装 django-ratings 或修改并分叉我的应用程序。
现在,如果成功,我可以通过使用 try/except 和 import 并定义字段来解决这个问题,但现在我的电影应用程序明确绑定到数据库表定义中的评级。
将这两个模型分开并在收视率模型而不是电影中定义关系似乎更明智。这样,在我使用评级时定义了依赖关系,但在使用电影应用程序时不需要。
你如何处理这个问题?有没有更好的方法来分离模型?
我还想知道这样做是否会对性能造成重大影响。
编辑:我想澄清一下,这更多是问题的一个例子,并且有点人为地说明了一点。我希望能够在每次需要添加相关数据时添加附加信息,而无需修改“电影”模型。我很欣赏到目前为止的回复。
【问题讨论】:
标签: python django reusability