0

我可以根据 DJANGO-POLYMORPHIC 模型动态生成 HTML 吗?我想从表中读取所有行并根据类类型生成 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 %}
4

1 回答 1

1

我不愿意这样编码。

首先,您需要在您的上下文中传递Text和,无论您不能在模板中调用带有参数的函数。Image

我倾向于编写一个模板标签或过滤器,或者更好的是,只需将一个属性添加到返回“事物”类型的类中,您可以直接将其放入<li></li>

class Foo(PolymorphicModel):
    def description(self):
        return self.__class__.__name__

和...

<ul>
{% for c in content %}
        <li>c.description</li>
{% endfor %}
</ul>
于 2016-06-07T21:46:43.430 回答