假設我有兩個變數 - User 和 Fruitlist。User 是一個模型實體,而fruitlist 是一個串列。
{% for user in users %}
<tr>
<td>{{ user.title }} </td>
<td>{{ user.text }} </td>
{% for fruit in fruitlist %}
<td>{{ user.fruit }} </td>
{% endfor %}
{% endfor %}
我正在嘗試使用上面的代碼創建一個表,其中為fruitlist 中的每個水果創建一列,并且該列填充了屬性 user.fruit 的值(用戶模型為每個水果都有一個欄位,其中包含一個價值)。
為什么上面的代碼不起作用?
編輯:
原始問題的解決方案 - 以下是關于表格的
對于表格:
{% for fruit in fruits %}
{% if user|get_attr:fruit != True %}
{{ form|get_attr:fruit }}
{% else %}
<p>✓ {{ fruit }}</p>
{% endif %}
{% endfor %}
uj5u.com熱心網友回復:
您的代碼不起作用,因為屬性 Fruit 被解釋為字串。
您可以撰寫自定義過濾器來檢索屬性作為模板中的變數。
# your_app_name/templatetags/your_app_name_tags.py
from django import template
register = template.Library()
@register.filter
def get_attr(obj, attr):
return getattr(obj, attr)
然后在你的模板中
{% load your_app_name_tags %}
{% for user in users %}
<tr>
<td>{{ user.title }} </td>
<td>{{ user.text }} </td>
{% for fruit in fruitlist %}
<td>{{ user|get_attr:fruit }} </td>
{% endfor %}
{% endfor %}
uj5u.com熱心網友回復:
代替:
<td>{{ user.fruit }} </td>
和:
<td>{{ user[fruit] }} </td>
幸運的是,您可以在這里訪問一個屬性,就像它是字典鍵一樣。
盡管根據您的描述,這可能不是正確的解決方案。
如果水果串列是這樣的:
fruitlist = ['apple', 'orange', 'banana']
那么它應該是一個適用的解決方案
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/370661.html
