使用 Django 多态模型生成 HTML
Generate HTML using Django-Polymorphic models
我可以根据 DJANGO-POLYMORPHIC 模型动态生成 HTML 吗?我想从 table 中读取所有行并根据 class 类型生成 div。或者这是不好的做法?
{% if content %}
{% for c in content %}
<ul>
{% if c.instance_of(Text) %}
<li>TEXT</li>
{% endif %}
{% if c.instance_of(Image) %}
<li>IMAGE</li>
{% endif %}
</ul>
{% endfor %}
{% else %}
<p>No content available.</p>
{% endif %}
我不愿意这样编码。
首先,您需要在上下文中传递 Text
和 Image
,而不管 you can't call a function in a template with parameters.
我倾向于写一个模板标签或过滤器,或者更好的是,只在 class 中添加一个 属性,returns 是 [=24= 的类型] 是的,您可以将其直接放入 <li></li>
class Foo(PolymorphicModel):
def description(self):
return self.__class__.__name__
还有...
<ul>
{% for c in content %}
<li>c.description</li>
{% endfor %}
</ul>
我可以根据 DJANGO-POLYMORPHIC 模型动态生成 HTML 吗?我想从 table 中读取所有行并根据 class 类型生成 div。或者这是不好的做法?
{% if content %}
{% for c in content %}
<ul>
{% if c.instance_of(Text) %}
<li>TEXT</li>
{% endif %}
{% if c.instance_of(Image) %}
<li>IMAGE</li>
{% endif %}
</ul>
{% endfor %}
{% else %}
<p>No content available.</p>
{% endif %}
我不愿意这样编码。
首先,您需要在上下文中传递 Text
和 Image
,而不管 you can't call a function in a template with parameters.
我倾向于写一个模板标签或过滤器,或者更好的是,只在 class 中添加一个 属性,returns 是 [=24= 的类型] 是的,您可以将其直接放入 <li></li>
class Foo(PolymorphicModel):
def description(self):
return self.__class__.__name__
还有...
<ul>
{% for c in content %}
<li>c.description</li>
{% endfor %}
</ul>