[英]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.