gpt4 book ai didi

python - 避免在 Django 中循环导入

转载 作者:行者123 更新时间:2023-12-03 23:22:20 26 4
gpt4 key购买 nike

我有两个模型 Company 和 Actions:

from companies.models import Company

class Action(models.Model):

company = models.ForeignKey(Company, blank=True, null=True, related_name='activity', on_delete=models.CASCADE)

然后我在 utils.py 中有一个实用程序
from .models import Action

def create_action(user, verb, target_name=None, target=None):
action = Action(user=user, verb=verb, target=target)

我在 def save 上在公司模型中调用了此实用程序, 所以我有公司模型:
from not.utils import create_action 

所以 Action Model 将 Company Model 导入为 FK,utils 导入 Action Model,而 Company Model 导入 utils

现在,由于循环导入,Django 给出了一个错误:
ImportError: cannot import name 'Company'

我在这里看到了一些 q/a 直接使用导入(没有 from)我尝试过但没有奏效
import not.utils as nt
nt.create_action(...)

最佳答案

删除 Company进口自 actions/models.pyuse a string反而:

class Action(models.Model):
company = models.ForeignKey('companies.Company', blank=True, null=True, related_name='activity', on_delete=models.CASCADE)

关于python - 避免在 Django 中循环导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47906761/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com