Django的过滤器或没有记录
问题描述:
我有机型Django的过滤器或没有记录
class Product(models.Model):
title = models.CharField(...)
class PropertyType(models.Model):
title = models.CharField(...)
class Property(models.Model):
property_type = models.ForeignKey(PropertyType)
product = models.ForeignKey(Product, related_name='properties')
value = models.CharField(...)
所以,我怎么就可以筛选产品与一些价值和房产类型的属性,包括产品,具有相同的房产类型
东西没有财产这样
properties = Property.objects.filter(property_type__pk=12, value='anyValue')
products = Product.objects.filter(Q(properties__in=properties)|
Q(NO PROPERTY RECORD WITH PROPERTYTYPE__ID=12 FOR PRODUCT))
答
通过经验找到了答案其实
properties = Property.objects.filter(property_type__pk=12, value='anyValue')
products = Product.objects.filter(Q(properties__in=properties)|
~Q(properties__property_type__pk__in=[12]))
答
正确的做法是properties = Property.objects.filter(property_type__pk__contains=12, value='anyValue')
我不明白的第二
笑一个我说什么,反正如果我的回答帮你,请voteup –