我的公司(很多一對多Service
和Company
之間)提供服務的遞歸查詢。爲了構建我的服務,我使用了一個使用Django多對多字段的樹狀結構。所以,一個服務可以包含多個其他服務。Django的非對稱多到許多相同的模型
的問題:我怎麼能檢索所有業務的公司有?使用company.services
,我只能獲得與該公司直接相關的服務。我需要直接相關的+ included_services(以遞歸方式)。
class Company(models.Model):
services = models.ManyToManyField(Service)
class Service(models.Model):
name = models.CharField(max_length=255)
included_services = models.ManyToManyField("self", blank=True, symmetrical=False)
這很好,非常感謝!我有一個遞歸解決方案,但這種廣度優先搜索是一種更可讀的方法。 –
使用這種方法,您需要小心不要在服務圖中引入任何循環,否則這將在無限循環中運行。 – knbk