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
相关产品推荐
相关产品推荐

