擅长:python、mysql、java
<p>我不想太花哨。为什么不在“MyModel”上使用一个非常简单的方法来返回适当的值:</p>
<pre><code>def get_shared_attr1(self):
if self.shared_attr1:
return self.shared_attr1
if self.group:
return self.group.shared_attr1
return None
</code></pre>
<p>并处理<code>save</code>中正确状态的保持:</p>
<pre><code>def save(self, *args, **kwargs):
if self.group and self.shared_attr1 == self.group.shared_attr1:
self.shared_attr1 = ''
super(MyModel, self).save(*args, **kwargs)
</code></pre>
<p>您必须处理组的<code>save</code>中组的属性发生更改的情况:</p>
<pre><code>def save(self, *args, **kwargs):
self.mymodel_set.filter(shared_attr1=self.shared_attr1).update(shared_attr1='')
super(MyModelGroup, self).save(*args, **kwargs)
</code></pre>