【问题标题】:Question on Django: Displaying many to many fields关于 Django 的问题:显示多对多字段
【发布时间】:2010-10-08 14:02:55
【问题描述】:

在模板中渲染 ManyToManyField 时,我似乎遇到了 Django 的问题。我可以让它部分工作,但我不能让它按我的意愿正常工作。

首先我有一个发票模板,它显示了我数据库中的发票详细信息

#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 >]

这种工作,但我希望它只显示“保证支持服务”。所以我想知道如果可能的话我该如何做这个改变。

【问题讨论】:

    标签: python html django manytomanyfield


    【解决方案1】:

    {{invoice.work_orders.all} 的内容是Work_Order 对象的列表。
    如果你想打印它们,你应该迭代列表:

    {% for invoice in invoice.work_orders.all %}
      {{invoice}}<br />
    {% endfor %}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-31
      • 2015-07-09
      • 1970-01-01
      • 2021-06-01
      • 2014-11-11
      • 1970-01-01
      • 2011-07-07
      • 2011-01-05
      相关资源
      最近更新 更多