我想在 Django 模板中使用 abc.ABC 抽象类对象(不是实例)。在这些类中,我有几个类方法(使用@classmethod 装饰器定义),我想用它们来显示信息。
当我尝试显示列表对象时:{{ dataset.provided_services }}
我得到一个显示的类对象列表:
[<class 'dataset_services.table_service.QueryTableService'>, <class 'dataset_services.table_service.ExportTableService'>]
但是,如果我尝试遍历此列表:
<ul>
{% for service in dataset.provided_services %}
<li>
<p>{{ service.name }}</p>
<p>{{ service.description }}</p>
</li>
{% endfor %}
</ul>
我收到一条错误消息,告诉我我无法使用抽象方法实例化抽象基类,就好像 django 试图实例化类对象一样……这是正常行为吗?是否可以在 Django 模板中使用类对象而不实例化它们?
PS:我使用的是 Django 1.8.5 和 Python 3.4。