获取Django ORM中相关对象有非空白字段的所有对象



我有两个模型:

Company:
  pk
  ...
Supplier:
  pk
  mobile_phone = models.CharField(max_length=200, default='', blank=True, verbose_name="Мобильный телефон")
  company_id
  ...

:

  • 公司可能有多个供应商
  • 供应商可以属于一家公司

如何获得所有公司,其中至少有一个供应商与非空白移动电话?

尝试:

  1. return queryset.filter(suppliers__mobile_phone__iregex=r’^(?!s*$).+’)返回具有重复项的查询集
  2. return queryset.exclude(suppliers__isnull=True).exclude(suppliers__mobile_phone__exact=‘’)不工作,当公司有两个供应商,其中哪一个没有mobile_phone

如果选项1为您工作减去它返回重复的事实,您可以使用distinct()字段,如文档所说:https://docs.djangoproject.com/en/1.10/ref/models/querysets/

如果您的mobile_phone可以为空,不要使用default='',使用null=True。那么你可以试试:

Company.objects.filter(supplier__mobile_phone__isnull=False)

相关内容

  • 没有找到相关文章

最新更新