Django中扩展模型类的正确方式
假设我们想要建立两个独立的Django应用:
- 一个用于投票
- 一个用于评论
这些功能可以随意添加到现有的Django模型中。例如,我们可能想在Article
模型上启用投票和评论。
但是,如果我们想在评论上也启用投票呢?这时Comment
模型就需要依赖投票应用。如果我们只想使用评论,而完全不想用投票应用,那就不行了,因为它们之间有依赖关系。
所以,启用投票的功能应该在模型定义之外进行,对吧?比如在设置中。那么,如何在不修改现有模型代码的情况下,动态地扩展这些模型呢?
经过一些研究,我发现了add_to_class
这个方法,但似乎使用它被认为是不好的开发习惯。