当前位置: 首页>后端>正文

Django 配合Bootstrap5进行form表单渲染

django前端真的是麻烦,后端数据模型写好之后主要是要靠前端的bootstrap v5进行渲染。
Django后端给前端提供的form是直接{{ form }}的形式,而bootstrap则是要求在html内修改class这样的操作来进行渲染的。这就遇到问题,class无法直接对{{ form }}进行渲染.

遇到这样的情况,我们用的是bootstrap5,所以需要两个包

  1. 安装:
pip3 install crispy-bootstrap5
pip3 install django-crispy-forms
  1. 配置settings.py
INSTALLED_APPS = [
    ...,
    'crispy_forms',
    'crispy_bootstrap5',
]

然后底部加上:

CRISPY_ALLOWED_TEMPLATE_PACKS = "bootstrap5"
CRISPY_TEMPLATE_PACK = "bootstrap5"
  1. 前段html

顶部导入:{% load crispy_forms_tags %}

在你需要渲染的form后面加上过滤{{ form|crispy }}

单个字段如下:{{ form.username|as_crispy_field }}

<form class="needs-validation mb-2" method="post" role="form">
     {% csrf_token %}
     <div class="position-relative mb-4">{{ form.username|as_crispy_field }}</div>
     <div class="mb-4">
         <div class="password-toggle form-label fs-base">
             {{ form.password|as_crispy_field }}
         </div>
     </div>
     <button type="submit" class="btn btn-primary shadow-primary btn-lg w-100">Sign in</button>
</form>

参考:https://blog.csdn.net/grkcsdn/article/details/118468053
参考:https://stackoverflow.com/questions/65238459/templatedoesnotexist-at-users-register-bootstrap5-uni-form-html


https://www.xamrdz.com/backend/3wj1923769.html

相关文章: