Ale*_*inn 3 architecture django circular-dependency
在处理基于Django的项目时,我总是试图遵循Django对可重用应用程序的方法 - 我试图将我的应用程序彼此分离,特别是试图避免交叉引用,但有时似乎不可能.
让我们考虑一个包含2个应用程序的简单示例:文章和用户.文章应用定义了文章模型,文章列表视图和单篇文章视图,用户应用定义了用户模型和用户配置文件视图.文章引用了作者字段中的用户,因此文章应用程序显然依赖于用户应用程序,这很好.
但是当谈到用户配置文件时,我想在该页面上显示用户创作的最新文章(可能是用户查看的最新文章),但这会让用户应用程序知道文章应用程序,这正是我想要避免的.
我显然可以尝试将所有这些引用推送到模板级别,但它仍然无法完全解决问题,同时有时可能在数据库查询方面效率非常低.
在这种情况下你们做了什么?
如果您确实没有在"用户"应用和"文章"应用之间进行任何对话,那么您需要第三个应用作为界面.这将了解用户和文章,并定义它们之间的所有耦合.您的文章视图将在那里,因为它必须获取用户数据,并且您的用户配置文件视图将在那里,因为它需要说"Fred写了5篇文章".
这种脱钩程度是否值得,我不知道.有时为可重用性进行编程会妨碍首先使用该东西.
| 归档时间: |
|
| 查看次数: |
1362 次 |
| 最近记录: |