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%間} –