Sel*_*sen 5 django model circular-dependency
我有 3 个应用程序产品、销售、购买。每个应用程序都有一个相应命名的模型类、产品、销售和购买。
products/models.py
class Product(models.Model):
Name = models.CharField(max_length=32)
sales/models.py
class Sale(models.Model):
Product = models.ForeignKey('products.Product', on_delete=models.CASCADE)
purchases/models.py
class Purchase(models.Model):
Product = models.ForeignKey('products.Product', on_delete=models.CASCADE)
Run Code Online (Sandbox Code Playgroud)
我决定为模型类创建自定义管理器,以便当我在导入产品中的销售模型的自定义管理器中编写方法时,可以将所有逻辑保留在模型文件中(通过覆盖每个类的对象 attr )。 sales.models 中的 models 和 Product 模型创建了一个循环引用,我能够通过在方法本身中执行导入来摆脱它,但我记得在网上读到循环导入是糟糕的代码编写的标志。
所以我的问题是在这种情况下如何避免循环导入并访问 sales.models 中的产品模型和 products.models 中的销售。
小智 8
您可以按名称导入模型以避免循环导入。当需要使用模型时,像这样导入:
from django.apps import apps
ModelName = apps.get_model(app_label='app_name', model_name='ModelName')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2094 次 |
| 最近记录: |