如果我只有某些地区可以销售的产品。客户也可以属于多个区域。 示例:
class Customer(models.Model):
firstname = models.CharField(max_length=100, default="")
class Product(models.Model):
productname = models.CharField(max_length=100, default="")
class Region(models.Model):
regionname = models.CharField(max_length=100, default="")
class CustomerRegionLink(models.Model):
customer = models.ForeignKey(Customer)
region = models.ForeignKey(Region)
class ProductRegionLink(models.Model):
product = models.ForeignKey(Product)
region = models.ForeignKey(Region)
如果我现在有一个Customer对象。如何过滤可以订购的产品?
我尝试过以下版本:
thecustomer = Customer.objects.get(id=1)
prods = ProductRegionLink.object.filter(region__in=thecustomer.customerregionlink.all())
此错误如下: ValueError:不能将QuerySet用于“ CustomerRegionLink”:将QuerySet用于“区域”。
答案 0 :(得分:0)
尝试
thecustomer = Customer.objects.get(id=1)
prods = ProductRegionLink.object.filter(region__in=[cr_link.region for cr_link in thecustomer.customerregionlink.all()])
与当前查询一样,您正在尝试在customerregionlink查询集中查找区域,而不是在区域查询集中或列表中。