天天看点

Django创建自定义filter来使用bootstrap

在学习django的时候由于前端用的bootstrap,使用forms不知道如果添加bootstrap的class样式,翻了一下资料可以用自定义filter来添加:

按照django book第九章的教程:

1、先在应用下建立一个templatetags目录,里面应该放两个文件(__init__.py和一个我自定义的文件),结构如图:

Django创建自定义filter来使用bootstrap
2、__init__.py 文件是空的,作用不说了,my_app_filter.py 里面就可以自己写filter,我定义了一下加class的filter:

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样式

{% load my_app_filters %}
...
{{ form.caption|addcss:"form-control" }}
...