Django创建自定义filter来使用bootstrap

发布于 2021年 07月 02日 14:33

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


按照django book第九章的教程:

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


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" }}
...    


参考文章:

http://djangobook.py3k.cn/2.0/chapter09/

http://stackoverflow.com/questions/414679/add-class-to-django-label-tag-output