在Django模板中如何使用单个对象获得所有孙子对象?

nfzehxib  于 2022-12-20  发布在  Go
关注(0)|答案(2)|浏览(90)

我有一个模型像:

class Invoice(models.Model):
    created_date = models.DateTimeField(auto_now_add=True)

class Sell(models.Model):
    invoice = models.OneToOneField(Invoice, on_delete=models.CASCADE)

class SellItems(models.Model):
    sell = models.ForeignKey(
        Sell, related_name='sell_item', on_delete=models.CASCADE)
    item = models.CharField(max_length=200)

在模板中,如何使用Invoice对象获得SellItems

ekqde3dh

ekqde3dh1#

您可以使用以下代码段:

from models import Invoice
invoice = Invoice.objects.all().first()
if invoice and invoice.sell:
  sell_items = invoice.sell.sell_item.all()

只要记住,如果没有关系,sell就可能是none。

fwzugrvs

fwzugrvs2#

要访问反向外键关系,请使用docs中的_set
您的查询:

invoice = Invoice.objects.first()

在您模板中:

{% for sell in invoice.sell_set.all %}
    <h1>{{ sell.pk }}</h1>
    {% for sell_item in sell.sellitems_set.all %}
        <h1>{{ sell_item.item }}</h1>
        <br>
    {% endfor %}
    <br>
{% endfor %}

相关问题