我无法通过我构建的表运行查询,该表基本上是一个链接类型表来链接 Company
和 Package
class CompanyPackageLink(models.Model):
company = models.ForeignKey('business.Company', related_name='company_packages')
package = models.ForeignKey('business.Package', related_name='packages')
我正在尝试通过 CompanyPackage
查询 company
表,然后检索与该查询关联的所有包。
我有类似的东西...
company = Company.objects.get(employee=self.request.user)
company_packages = CompanyPackageLink.objects.filter(company=company).select_related('package')
现在这将返回一个正确的 quesyset,但它返回 CompanyPackage 实例。
<QuerySet [<CompanyPackageLink: companyA: PackageA>, <CompanyPackageLink: CompanyB: PackageB>]>
我希望我的查询返回实际的 Package
模型实例,我可以在其中检索名称、价格等。
所以我希望返回的查询集实际返回这个..
<QuerySet [<Package: $100.00>, <Package: $200.00>]>
感谢任何帮助!
答案 0 :(得分:4)
您可以通过以下方式轻松查询:
Package.objects.filter(packages__company=company)
可能有两个(或更多)CompanyPackageLink
具有相同的 Package
和 Company
。在这种情况下,QuerySet
将多次包含该 Package
。您可以通过使用 .distinct()
[Django-doc]:
Package.objects.filter(packages__company=company).distinct()