0
我有以下型号在Django:Django的查询不选择related_name
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的查询:在模板
{% for inv in payments %}
{% for meta in inv.paym_invoice_meta %}
{{ meta.inv_invoice_hash }}
{% endfor %}
{% endfor %}
payments = UserPayments.objects.filter(paym_user_id=user_id)
并遍历此查询我得到的模板错误pay_invoice_meta不迭代。通过包含左外连接的手动选择语句,我可以获得所有结果。
我在这里错过了什么?如何强制查询从InvoiceNumbers中选择值?
更换 {%为inv.paym_invoice_meta.all%间} –