You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django模型添加计算字段报错:ForeignKey对象不可调用

问题解决:TypeError: 'ForeignKey' object is not callable

错误根源是缩进问题:你把@property装饰器和对应的maintenance_payable方法写在了Unit类的外部,同时方法内部的return语句也没有正确缩进,导致Python语法解析出错,触发了这个错误提示。

修正后的完整Unit类代码如下:

class Unit(models.Model):
    property=models.ForeignKey(Property, on_delete=models.CASCADE)
    block=models.CharField(max_length=50, null=True, blank=True)
    floor=models.CharField(max_length=50, null=True, blank=True)
    unit_number=models.CharField(max_length=10)   
    owner = models.ForeignKey(Owner, null=True, blank=True, on_delete=models.SET_NULL) 
    share_value = models.PositiveIntegerField(default=100)
    ownership_start_date=models.DateField()
    maintenance_fee_monthly = models.DecimalField(max_digits=10, decimal_places=2)
    sinking_fund_monthly = models.DecimalField(max_digits=10, decimal_places=2)

    @property
    def maintenance_payable(self):
        return (self.maintenance_fee_monthly * self.share_value)/100

关键修正点:

  • 把@property和maintenance_payable方法缩进至Unit类的代码块内部,确保它们是类的成员方法
  • 给return语句添加正确的缩进(4个空格),符合Python的代码格式规范

内容的提问来源于stack exchange,提问作者seanwhs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 13:20:38