我有两个型号:
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=‘’)
当公司有2家供应商时,它们不起作用,其中有哪些供应商没有mobile_phone
。感谢任何帮助//链接到文档。
答案 0 :(得分:1)
如果您的mobile_phone
可能为空,请不要使用default=''
,请使用null=True
。然后你可以尝试:
Company.objects.filter(supplier__mobile_phone__isnull=False)
答案 1 :(得分:1)
如果选项1适用于您,减去它返回重复项的事实,您可以在字段上使用distinct(),例如文档说明:https://docs.djangoproject.com/en/1.10/ref/models/querysets/