繁体   English   中英

Django查询未选择related_name

[英]Django query does not select related_name

我在django中确实有以下模型:

class UserPayments(models.Model):

    _DATABASE = "payments"

    id = models.AutoField(primary_key=True)
    paym_psp_id = models.ForeignKey(ConfigPSP, null=True, on_delete=models.SET_NULL)
    [...]

class InvoiceNumbers(models.Model):
    _DATABASE = "payments"

    id = models.AutoField(primary_key=True)
    inv_date = models.DateField(null=False)
    inv_payment_id = models.ForeignKey(UserPayments, null=True, on_delete=models.DO_NOTHING, related_name='paym_invoice_meta')
    [...]

如您所见,它们与InvoiceNumbers模型中的“ related_name”定义相关。

当我不这样做时在django中查询:

payments = UserPayments.objects.filter(paym_user_id=user_id)

并在模板中遍历此查询

{% for inv in payments %}
      {% for meta in inv.paym_invoice_meta %}
            {{ meta.inv_invoice_hash }}
      {% endfor %}
{% endfor %}

我收到pay_invoice_meta不可迭代的模板错误。 使用包含左外部联接的手动选择语句,可以获得所有结果。

我在这里想念什么? 如何强制查询从InvoiceNumbers中选择值?

调用相关对象的all方法以返回QuerySet:

{% for inv in payments %}
    {% for meta in inv.paym_invoice_meta.all %}
        {{ meta.inv_invoice_hash }}
    {% endfor %}
{% endfor %}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM