【发布时间】:2022-01-11 11:06:39
【问题描述】:
我的 Django DRF 应用中有以下模型。
class FilterValue(models.Model):
code = models.Charfield(…)
class ProductVariant(models.Model):
filters = models.ManyToManyField("FilterValue", blank=True, …)
class Product(models.Model):
variants = models.ManyToManyField("ProductVariant", blank=True, …)
category = models.ForeignKey("Category", blank=True)
我正在尝试在 Category 模型上定义函数,该函数将返回 FilterValue 的所有对象,这些对象附加到该类别中分配的所有 Products 中的所有 ProductVariants。
由于我将拥有大量不同的 ProductVarint,我无法摆脱嵌套循环,因为它真的很慢。
我曾多次尝试解决它。
我当然可以使用以下方法在Category 中获取所有Products:
products = Product.objects.filter(category=self)
但后来我陷入了这样一个事实,即我实际上需要过滤嵌套的 ManyToMany 对象,因为我需要 QuerySet 中所有产品的所有 ProductVariants,然后 - 在另一个级别中,我需要每个 ProductVariant 的所有 ManyToMany FilterValue 对象。
谢谢。
【问题讨论】:
标签: django django-models django-rest-framework django-orm