为啥 django 强制所有模型类都在 models.py 中?
Posted
技术标签:
【中文标题】为啥 django 强制所有模型类都在 models.py 中?【英文标题】:Why does django enforce all model classes to be in models.py?为什么 django 强制所有模型类都在 models.py 中? 【发布时间】:2010-11-23 06:25:12 【问题描述】:我刚刚了解到将模型类拆分为不同的文件会破坏 django 的许多内置功能。
我来自 java 背景。在那里,编写很长的类文件并不被认为是一种好习惯。但是 django 对所有模型类执行单个文件可能会导致程序员编写很长的 models.py 文件。这会让程序员很难看到整个领域模型的组织结构。
那么为什么 django 强制单个文件包含所有域类?
我通过谷歌搜索找到了这个问题的a solution proposal。但我不能确定这是否会正常工作。你推荐这个解决方案吗?
【问题讨论】:
您的链接已失效。可以更新一下吗? models.py getting huge, what is the best way to break it up?的可能重复 【参考方案1】:单一命名空间:是的。单模块:无。
您的模型必须可从命名空间 appname.models
导入。
【讨论】:
我认为这个答案可能是这个问题的正确答案,但它肯定可以与更清晰有关。我认为它基本上归结为appname.models
需要从其他模块导入所有模型。解释为什么或在哪里记录了这种行为会很有帮助。
同样,为什么让appname.models
只导入定义其他模型的模块是不够的?这肯定会触发必要的元类魔法吗?如果不是,为什么?以上是关于为啥 django 强制所有模型类都在 models.py 中?的主要内容,如果未能解决你的问题,请参考以下文章