【django】models报错Manager isn’t accessible via XXX instances 的注意事项

【django】models报错Manager isn’t accessible via XXX instances 的注意事项

问题描述:
某个模型与自身自联结,在model.py中,需要调用自己,此时必须使用model本身的对象名称,而不能使用’self’否则会报错。

class Project(models.Model):
    """
    项目模型
    """
    ...
    parent = models.ForeignKey('self', verbose_name="主合同", on_delete=models.CASCADE, null=True, blank=True, default=None)

    class Meta:
        verbose_name = "项目"
        verbose_name_plural = "项目"

    @property
    def total(self):
        """
        合同总价,项目本身的金额 加上 所有补充协议的金额
        :return:
        """
        total = self.contract_value
        child = Project.objects.filter(parent=self.id)  #注意这里使用的是Project.objects,不能使用self.objects
        if child:
            for p in child:
                total += p.contract_value
        return total
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值