当Django在模板中渲染ManyToManyField时,我似乎遇到了问题。我可以让它部分工作,但我不能让它正常工作。
首先,我有一个发票模板,显示我的数据库中的发票详细信息
#invoice_details.html
{% extends "base.html" %}
{% block content %}
<h2>Invoice Details</h2>
<div id="horizontalnav">
<a href="/index/add_invoice">Add an Invoice</a>
<a href="/index/work_orders">Add a Work Order</a>
<a href="/index/add_payment">Add Payment</a>
</div>
<ul>
<div id="list">
{% for invoice in invoices_list %}
{{invoice.client}}<br/>
{{invoice.invoice_no}}<br/>
{{invoice.contract_info}}<br/>
{{invoice.date}}<br/>
{{invoice.work_orders}}<br/>
{% endfor %}
</div>
</ul>
{% endblock %}
在我的数据库中,{{invoice.work_orders}}显示如下。这是因为{{invoice.work_orders}}使用了manytomanyfield
<django.db.models.fields.related.ManyRelatedManager object at 0x8a811ec>
现在我尝试将{{invoice.work_orders}}更改为{{invoice.work_orders.all}},我就明白了。
[<Work_Order: Assurance Support Service >]
这种作品,但我希望它只显示“保证支持服务”。所以我想知道如果可能的话我怎么能做这个改变。
答案 0 :(得分:5)
{{invoice.work_orders.all}
的内容是Work_Order
个对象的列表
如果要打印它们,则应迭代列表:
{% for invoice in invoice.work_orders.all %}
{{invoice}}<br />
{% endfor %}