我是一個Django初學者,一直試圖儘可能地分離我的應用程序,並儘可能將其構建成儘可能小的可重用部分。試圖遵循James Bennett的構建re-usable apps的策略。考慮到這一點,我遇到了這個問題。創建可重用的Django應用程序?
比方說,我有這樣的存儲有關的電影信息的應用程序:
的代碼會是這個樣子:
class Movie(models.Model):
name = models.CharField(max_length=255)
...
現在,如果我想增加收視率,我可以使用Django評級和一個簡單的字段添加到我的模型:
class Movie(models.Model):
name = models.CharField(max_length=255)
rating = RatingField(range=5)
...
這在本質上意味着我的電影的應用程序現在依賴於Django的收視率,如果我想重新使用它,但不再需要收視率,我仍然必須安裝Django的評級或修改和分離我的應用程序。
現在,我可以通過嘗試/除了導入來解決這個問題,如果成功定義字段,但現在我的電影應用程序顯式綁定到數據庫表定義中的評級。
分離兩個模型並在評級模型而不是電影中定義關係似乎更合理。這種方式的依賴關係是在使用評分時定義的,但在使用Movie應用程序時不需要。
你如何處理這個問題?有沒有更好的方法來分離模型?
我也想知道這樣做是否有任何主要表現懲罰。
編輯:我想澄清一下,這更像是一個問題的例子,而且有些人爲了說明這一點。我希望在每次需要添加相關數據時都能夠添加更多信息,而無需修改「電影」模型。我很欣賞迄今的迴應。
我愛你所有的電影,男人。 – zeekay 2011-05-11 03:41:57