在 Django 查询中与父级一起获取子级数据

2024-05-07

我有两个模型产品和产品包。产品包有一个产品型号的外键。我如何访问包含产品包的所有产品的列表。

class Product(models.Model):
    title = models.CharField(verbose_name="Product Title", max_length=500)

class ProductBundle(models.Model):
    product = models.ForeignKey(Product,on_delete=models.CASCADE,related_name="product")
    bundle_product = models.ForeignKey(Product,on_delete=models.CASCADE,related_name="bundle_product",default="")
    quantity = models.IntegerField(default="1")

我想获取所有具有产品包 ID 的产品,例如 父级到子级在单个变量中。

Thanks.


你已经拥有了ProductBundle对象作为相关对象参考 https://docs.djangoproject.com/en/2.1/ref/models/relations/#related-objects-reference对于每个Product.

假设你这样做products = Product.objects.all()您可以通过执行以下操作来访问每个产品的捆绑包:

for product in products:
    product_bundles = product.productbundle_set.all()

根据评论进行编辑:

如果您想在模板中显示所有产品及其捆绑包,您几乎可以做同样的事情。在你的view例如,获取变量中的所有产品products = Product.objects.all()并将其传递给模板。假设你的变量被称为products你可以做:

{% for product in products %}
    <h1>{{product.title}}</h1>
    <h1>Bundles:</h1>
    {% for bundle in product.productbundle_set.all %}
        <h2>{{bundle.quantity}}</h2>
    {% endfor %}
{% endfor %}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Django 查询中与父级一起获取子级数据 的相关文章

随机推荐