use*_*631 3 python django django-models python-import python-3.x
我有两个模型 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)
Run Code Online (Sandbox Code Playgroud)
然后我在 utils.py 中有一个实用程序
from .models import Action
def create_action(user, verb, target_name=None, target=None):
action = Action(user=user, verb=verb, target=target)
Run Code Online (Sandbox Code Playgroud)
我在公司模型中调用了这个实用程序def save,所以我有公司模型:
from not.utils import create_action
Run Code Online (Sandbox Code Playgroud)
所以 Action Model 将 Company Model 导入为 FK,utils 导入 Action Model,Company Model 导入 utils
现在,由于循环导入,Django 给出了一个错误:
ImportError: cannot import name 'Company'
Run Code Online (Sandbox Code Playgroud)
我在这里看到了一些 q/a 直接使用导入(没有来自)我试过但没有奏效
import not.utils as nt
nt.create_action(...)
Run Code Online (Sandbox Code Playgroud)
Ala*_*air 11
删除Company导入actions/models.py并使用字符串代替:
class Action(models.Model):
company = models.ForeignKey('companies.Company', blank=True, null=True, related_name='activity', on_delete=models.CASCADE)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2787 次 |
| 最近记录: |