Django-如何使用ManyToManyField字段进行过滤?

Django-如何使用ManyToManyField字段进行过滤?,django,django-models,Django,Django Models,型号: class Product(models.Model): ... options = models.ManyToManyField(Option, blank=True) class Option(models.Model): ... class ProductVariant(models.Model): ... product = models.ForeignKey(Product, on_delete=models.CASCADE) # p

型号

class Product(models.Model):
    ...
    options = models.ManyToManyField(Option, blank=True)

class Option(models.Model):
    ...

class ProductVariant(models.Model):
    ...
    product = models.ForeignKey(Product, on_delete=models.CASCADE) # parent product
    option = models.ForeignKey(Option, on_delete=models.DO_NOTHING, null=True)
我需要找到所有
产品变量
s,其中
选项
不属于父产品
产品
上的任何
选项

我尝试了以下过滤:

ProductVariant.objects.exclude(option_id__in=[o.pk for o in F('product__options')])
但我有以下例外:

'F' object is not iterable

尝试按
Count
进行过滤:

ProductVariant.objects.annotate(product_count=Count('option__product')).filter(product_count=0)