我有两个模型:
Company:
pk
...
Supplier:
pk
mobile_phone = models.CharField(max_length=200, default='', blank=True, verbose_name="Мобильный телефон")
company_id
...
:
- 公司可能有多个供应商
- 供应商可以属于一家公司
如何获得所有公司,其中至少有一个供应商与非空白移动电话?
尝试:
-
return queryset.filter(suppliers__mobile_phone__iregex=r’^(?!s*$).+’)
返回具有重复项的查询集 -
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)