【发布时间】:2021-04-06 11:43:04
【问题描述】:
我知道我在这里有一个循环导入,但其中一个用于定义一些外键字段,另一个仅用于另一个模型中的属性。
型号:
收据/models.py
from django.db import models
from employees.models import Employee
class Receipt(models.Model):
Supervisor = models.ForeignKey(Employee, on_delete=models.CASCADE, related_name='receipt_supervisor')
Employee = models.ForeignKey(Employee, on_delete=models.CASCADE, related_name='receipt_employee')
amount = models.DecimalField(max_digits=6, decimal_places=2)
员工/models.py
from django.db import models
from receipts.models import Receipt
class Employee(models.Model):
number = models.CharField(max_length=50, unique=True)
first_name = models.CharField(max_length=255)
last_name = models.CharField(max_length=255)
@property
def receipt_sum(self):
receipts = Receipt.objects.filter(Employee=self.pk)
sum = 0
for receipt in receipts:
sum += receipt.amount
return sum
我收到此错误:
无法从部分初始化的模块“employees.models”导入名称“Employee”(很可能是由于循环导入)
有没有办法解决这个问题,以便我可以在 Employee 属性中进行收据查询?还是我需要在别处进行此计算?
谢谢!
【问题讨论】:
-
尝试在 employee.models.py 的
def receipt_sum(self):中导入Receipt,例如def receipt_sum(self): from receipts.models import Receipt.... -
嗨丹尼尔,你有没有试过在这里搜索类似的问题?看看这个答案,我相信它回答了你的问题:*.com/a/4379094/4744341
标签: python django importerror