17 django
如果我有一个需要类似布局但需要根据对象类设置一些属性的对象列表,我怎样才能获取类名,而类和其他xx值在模板中不可用.
{% for obj in objects %}
<div class={{obj.__class__.__name__}}
..
</div>
{% endfor }}
可能有一种替代方法,我在这里失踪..
dav*_*gsu 32
您还可以编写自定义过滤器.我的用例是检查Django表单中的html元素是否是一个复选框.此代码已经过Django 1.4测试.
我跟着有关说明自定义过滤器.我的过滤器代码看起来如此.
在myapp/templatetags/class_tag.py:
from django import template
register = template.Library()
@register.filter(name='get_class')
def get_class(value):
return value.__class__.__name__
Run Code Online (Sandbox Code Playgroud)
在您的模板文件中:
{% load class_tag %}
{% if Object|get_class == 'AClassName' %}
do something
{% endif %}
{{ Object|get_class }}
Run Code Online (Sandbox Code Playgroud)
And*_*sio 14
有点脏的解决方案
如果对象是属于模型的QuerySet,则可以向模型添加自定义方法.
class mymodel(models.Model):
foo = models........
def get_cname(self):
class_name = ....
return class_name
Run Code Online (Sandbox Code Playgroud)
然后在您的模板中,您可以尝试:
{% for obj in objects %}
<div class="{{obj.get_cname}}">
..
</div>
{% endfor }}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14653 次 |
| 最近记录: |