在学习django的时候由于前端用的bootstrap,使用forms不知道如果添加bootstrap的class样式,翻了一下资料可以用自定义filter来添加:
按照django book第九章的教程:
1、先在应用下建立一个templatetags目录,里面应该放两个文件(__init__.py和一个我自定义的文件),结构如图:
2、__init__.py 文件是空的,作用不说了,my_app_filter.py 里面就可以自己写filter,我定义了一下加class的filter:
1
2
3
4
5
|
from
django
import
template
register
=
template.Library()
@register
.
filter
(name
=
'addcss'
)
def
addcss(field, css):
return
field.as_widget(attrs
=
{
"class"
:css})
|
3、然后在模板上加载刚刚的文件,就可以用自定义的filter,这样可以添加bootstrap样式
1
2
3
4
|
{% load my_app_filters %}
...
{{ form.caption|addcss:"form-control" }}
...
|
参考文章:
http://djangobook.py3k.cn/2.0/chapter09/
http://stackoverflow.com/questions/414679/add-class-to-django-label-tag-output
本文转自运维笔记博客51CTO博客,原文链接http://blog.51cto.com/lihuipeng/1360177如需转载请自行联系原作者
lihuipeng