首页 > 解决方案 > 在 django 模板中访问相关表字段值

问题描述

我正在尝试访问 Django 模板中的 Django 相关字段值:

            {% for item in order %}
            <tr>
              
              <td>{{ item.id }}</td>
              <td class="text-left">{{ item.created }}</td>
              <td class="text-left">{{ item.payments__charge_status }}</td>
              <td class="text-left">{{ item.shipping_method_name }}</td>
              <td class="text-right">£{{ item.total_gross_amount }}</td>
              
            </tr>
            {% endfor %}

views.py 中定义的实际查询集:

orders = Order.objects.values().filter(created__range=(start_date, end_date)).filter(Q(payments__charge_status="fully-charged") | Q(payments__charge_status="not-charged"))

付款在不同的表中,我可以payments__charge_status在视图中使用,但不能在实际模板中访问。

任何帮助表示赞赏。


更新了支付模型的 models.py:

……

class Payment(models.Model):


    order = models.ForeignKey(
        Order, null=True, related_name="payments", on_delete=models.PROTECT
    )

标签: pythondjangodjango-queryset

解决方案


从您的数据库建模订单可以有多个付款(多对一)所以付款是一个查询集,您应该遍历

{% for payment in item.payments.all %}
          {{ payment.charge_status }   
{% endfor %}

推荐阅读