Django中扩展模型类的正确方式

0 投票
1 回答
715 浏览
提问于 2025-04-18 13:16

假设我们想要建立两个独立的Django应用:

  • 一个用于投票
  • 一个用于评论

这些功能可以随意添加到现有的Django模型中。例如,我们可能想在Article模型上启用投票和评论。

但是,如果我们想在评论上也启用投票呢?这时Comment模型就需要依赖投票应用。如果我们只想使用评论,而完全不想用投票应用,那就不行了,因为它们之间有依赖关系。

所以,启用投票的功能应该在模型定义之外进行,对吧?比如在设置中。那么,如何在不修改现有模型代码的情况下,动态地扩展这些模型呢?

经过一些研究,我发现了add_to_class这个方法,但似乎使用它被认为是不好的开发习惯。

1 个回答

1

你为什么想把这个功能放到模型里呢?通常来说,这些功能会是独立的应用程序,它们的模型会和文章有关系。你可以使用通用关系来定义你的评论或投票应用和目标模型之间的数据库关系。

撰写回答