我的 models.py 是这样的:
class Department(models.Model):
name = models.CharField(max_length=255)
class Category(models.Model):
name = models.CharField(max_length=255)
department = models.ForeignKey(Department, related_name="categories")
class Product(models.Model):
name = models.CharField(max_length=255)
category = models.ForeignKey(Category, related_name="products")
正如您所看到的,产品模型没有直接连接到部门,它只有一个通过类别模型。但是,在我的部门详细信息<部门X> ,我想获得所有具有部门<部门的产品X部门。有没有办法用一个查询做到这一点?我不想为此使用for循环。谢谢!
答案 0 :(得分:3)
您可以使用双下划线表示法来查找相关模型中的字段,例如:
department = Department.objects.get(name='X')
products = Product.objects.filter(category__department=department)
或者,如果您还没有department
个实例,则可以按部门名称进行过滤:
products = Product.objects.filter(category__department__name='X')
答案 1 :(得分:2)
也许是这样的:
Product.objects.filter(category__department=<DepartmentX>)