擅长:python、mysql、java
<p>属性需要设置器进行赋值。尝试向<code>BlastEvent</code>添加setter,如下所示:</p>
<p><a href="https://docs.python.org/3/library/functions.html#property" rel="nofollow noreferrer">https://docs.python.org/3/library/functions.html#property</a></p>
<pre><code>class BlastEvent(Event):
tonnes = models.FloatField()
blast_type = models.ForeignKey(BlastType)
def _get_size(self):
return self.tonnes / BlastEvent.objects.all().aggregate(Max('tonnes'))['tonnes__max']
@property
def size(self):
if callable(self._get_size):
return self._get_size()
else:
return self._get_size
@size.setter
def size(self, value):
self._get_size = value
</code></pre>