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

时间:2019-02-11 14:26:46

标签: python django django-models django-views

我有两个Model产品和ProductBundle。 ProductBundle具有产品模型的外键。如何访问带有productbundle的所有产品的列表。

function x() {
    let count = 0;
    for (; count < 10; ++count) ;
    return count;
}

console.log(x());

我想获取所有带有productbundle ID的产品,例如 在单个变量中成为孩子的父母。

谢谢。

2 个答案:

答案 0 :(得分:0)

您应将related_nameproduct的{​​{1}}更改为ProductBundle之类的内容,然后可以转到bundles来访问所有product.bundles.all()ProductBundle

有关

编辑以过滤所有具有Product

的产品

假设您将ProductBundle用作bundlesrelated_name

答案 1 :(得分:0)

对于每个ProductBundle,您已经拥有Product个对象作为 here in JSON

假设您进行了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 %}