Django 配合Bootstrap进行form表单渲染

这周在开始逐步做一些前端的工作,主要是套bootstrap渲染。
不过碰到一个问题,因为Django后端给前端提供的form是直接{{form}}的形式,而bootstrap则是要求在html内修改class这样的操作来进行渲染的。

遇到这样的情况,就需要用到django-crispy-forms这个包

1:安装
pip install django-crispy-forms
然后在settings里面设置增加app
INSTALLED_APPS = [ …, ‘crispy_forms’,]
这里切记是下划线,不是中横杠,我写的时候填错了,还踩了个无法导入crispy_forms的坑。
最后还是在settings里面填上变量
CRISPY_TEMPLATE_PACK = ‘bootstrap4’ #用bootstrap来渲染django的默认模板内的forms
注意:这里也可以写作:CRISPY_TEMPLATE_PACK = ‘bootstrap3’。两个渲染效果差不多

2:使用-整体表单
接着,在你需要渲染的页面的顶端加入
{% load crispy_forms_tags %}
并且,在你需要渲染的form后面加上过滤 {{form|crispy}}
举例如下

{% extends 'scripts/base.html' %}
{% load crispy_forms_tags %}
{% block content %}
    <div class="container">
        <form action="{% url 'users:register' %}" method="post" class="form-horizontal" role="form">
            {% csrf_token %}
            {{ form|crispy }}
            <button name="submit" class="btn btn-primary">注册</button>
            <input name="next" type="hidden" value="{% url 'scripts:index' %}">
        </form>
    </div>
{% endblock content %}

3:单个字段
如果你只是想针对某个字段进行渲染,也是可以的
那你就在渲染的表单时候把字段单独拿出来,如下
{{form.title|as_crispy_field}}
性质和上面整体渲染是一样的

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值