【发布时间】:2021-05-16 14:45:29
【问题描述】:
我有 3 个这样的 Django 模型
Request是一个捐赠请求,RequestItem表示需要多少个name项目实例,Donation表示已经为连接的item做了多少捐赠
class Request:
pass
class RequestItem:
name
request = ForeignKey(Request)
needed = IntegerField()
class Donation:
item = ForeignKey(RequestItem)
donated = IntegerField()
一个RequestItem a被认为是完整的,如果
a.needed == Sum(donation.donated 为 a.donation_set.all() 中的每一笔捐款
一个请求 r 被认为是完整的,如果
对于 r.request_item_set.all() 中的每个 RequestItem ri; ri 完成
我需要过滤掉已完成/未完成的请求。
【问题讨论】:
-
不清楚您的要求。您想获得完成所有相关
RequestItems 所需的捐款数量吗? -
不,我需要获取所有 RequestItem 都满足其要求的 Request 项目。为简化起见,假设请求 A 连接到 2 个请求项 B 和 C。B 连接到捐赠 D;并且 C 连接到捐赠 E 和 F。如果 B.needed=D.donated 和 C.needed=E.donated+F.donated,则称 A 已完成/完成
-
尽可能简化问题的措辞。
标签: python django django-models django-orm