我已将模型定义如下,以及如何定义查询以过滤相关Test_Product产品名称在指定名称列表中的Sanity_Test集合?非常感谢
例如:
Sanity_Test_A包含Test_Product_A(产品名称为A),Test_Product_B(产品名称为B)
Sanity_Test_B包含Test_Product_C(产品名称为A),Test_Product_D(产品名称为C)
我想过滤一下Sanity_Test记录列表,它的Test_Product记录产品名称是A
class Sanity_Test(models.Model):
build = models.OneToOneField('CI.Build')
system_test = models.ForeignKey(System_Test,null=True,blank=True)
......
class Test_Product(models.Model):
product = models.ForeignKey('CI.Product',verbose_name='Product')
sanity_test = models.ForeignKey(Sanity_Test)
......
# APP : CI.model
class Product(models.Model):
name = models.CharField(max_length=255,unique=True)
......
答案 0 :(得分:2)
您也可以使用reverse relationships只使用一个查询:
sanity_test = Sanity_Test.objects.filter(test_product__product__name='A')
答案 1 :(得分:-1)
您可以执行以下操作:
sanity_test = [ test_product.sanity_set for test_productin Test_Product.objects.filter(product__name='A')]
这将获取产品名称为A的所有Test_Product对象,然后将相应的sanity_test对象添加到列表中