0

我有一个代表所选产品列表的表格,其中每个产品都是从选择框中选择的。选择框选择产品的 PK,但显示PK + 产品名称,例如:E12 - ValveE58 - Rotary nozzle。现在,我的具体情况是我为用户选择了一组预定义的产品,用户不能偏离这个产品选择。因此,用户不能改变选择的产品。此外,这种产品形式是一种inlineformset_factory,而不是主要形式。

我这样显示我的产品表单:

<table class="field_container" id="prodTable">
  <tr><th></th><th>CID</th><th>Qty</th></tr>
  {{ pform.management_form}}
  {% for form in pform %}
    <tr class="pform_set">
      {% for field in form %}
        <td class="product-item">{{ field }} {% if field.errors %} {{ field.errors }} {% endif %} </td>
      {% endfor %}
    </tr>
  {% endfor %}
</table>

如果我换成{{ field }}{{ field.value }}我得到的只是E12国外模型的PK。但是,我需要它来显示E12 -- Valve。有没有办法做到这一点?

4

1 回答 1

1

听起来像自定义模板标签可能会起作用。就像是 -

from your_module import Product

def get_product_string(value):
    try:
        product = Product.objects.get(pk=value);
        return value + " -- " + product.name
    except DoesNotExist:
        return value

然后改变你的模板,而不是{{ field.value }}你可以做{{ field.value|get_product_string }}

于 2013-01-31T18:22:25.040 回答