在我的应用程序中使用其他 Django 应用程序的模型的正确方法是什么?例如,我是否应该简单地进入其他应用程序的模型并添加我的功能以有效地耦合两个应用程序?
我应该使用 django 代理模型对模型进行子类化以添加我的应用程序特定功能吗?但是,此方法排除了在父应用程序中使用此附加功能的可能性。
我是否应该简单地导入模型并创建库函数来处理此附加功能?
谢谢! 皮特
最佳答案
某些类别的应用程序最终会与其他应用程序耦合 - 一个很好的例子是 django.contrib.auth :如果您使用 Django 用户模型,则您依赖于该应用程序并且您自己的应用程序与之耦合。
这种情况没有任何问题。我倾向于认为它不是耦合,而是依赖。您的应用程序取决于可用的 django.contrib.auth
。这是很自然的事情,因为您需要该功能。您始终可以将该应用程序替换为提供与您当前正在使用的界面相同的界面的其他应用程序...
现在,如果您有两个自己的应用程序,并且它们需要了解彼此的模型,我可以想到两种场景:
您的共享模型需要第三个应用程序
它们应该只是一个应用程序(不常见;您一开始就有理由将它们分开!)
我通常有一个自己的core
应用程序(就像有一个django.core
),我在其中保存项目中应用程序中通用的代码。如果不同应用程序的模型相互依赖,它们会移至此应用程序。
现在,您的两个应用程序也有可能实际上只是一个应用程序 - 但这不应该是默认的想法。单一应用程序是一件非常糟糕的事情(TM)。
关于django - 我应该如何使用其他应用程序中的 django 模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1609770/