回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有两种型号</p>
<pre><code>class ShareType(models.Model):
code = models.CharField(max_length=10, null=False, blank=False)
type = models.CharField(max_length=56, null=False, blank=False)
class ShareAllocation(models.Model):
session_key = models.CharField(max_length=40, null=True)
share_type = models.ForeignKey(ShareType, on_delete=models.CASCADE, null=True)
share_holder = models.ForeignKey(ShareHolder, on_delete=models.CASCADE, null=True)
number_of_shares = models.IntegerField(null=False, blank=False)
amount_paid = models.IntegerField(null=False, blank=False)
amount_unpaid = models.IntegerField(null=False, blank=False)
is_beneficial_owner = models.BooleanField(null=False, blank=False)
</code></pre>
<p>我使用的是这个查询,这显然是不正确的</p>
<pre><code>share_structure = ShareType.objects.annotate(Sum('shareallocation__number_of_shares')).\
filter(shareallocation__session_key=self.storage.request.session.session_key)
</code></pre>
<p>shareallocation表的示例数据</p>
<pre><code>12,5,2,1,false,9,9,098fiy6m9f0tkkmnk8jr715pyjlzcai6
13,10,2,1,false,10,12,098fiy6m9f0tkkmnk8jr715pyjlzcai6
14,15,2,1,false,12,12,098fiy6m9f0tkkmnk8jr715pyjlzcai6
</code></pre>
<p>共享类型表的示例数据</p>
<pre><code>9,ORD,(ORD) Ordinary
10,A,(A) A
11,B,(B) B
12,MAN,(MAN) Management
13,LG,(LG) Life Governors
14,EMP,(EMP) Employees
15,FOU,(FOU) Founders
16,PRF,(PRF) Preference
17,CUMP,(CUMP) Cumulative Preference
18,NCP,(NCP) Non Cumulative Preference
19,REDP,(REDP) Redeemable Preference
20,NRP,(NRP) Non Redeemable Preference
21,NCRP,(NCRP) Non Cum. Redeemable Preference
22,PARP,(PARP) Participative Preference
23,RED,(RED) Redeemable
24,INI,(INI) Initial
25,SPE,(SPE) Special
</code></pre>
<p>所需输出:</p>
<ul>
<li>代码</li>
<li>股份数量(总数)</li>
<li>已付金额(合计)</li>
<li>未付金额(合计)</li>
</ul>