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

{% csrf_token %}
{{ form.username|as_crispy_field }}
{{ form.password|as_crispy_field }}

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

你可能感兴趣的:(Django 配合Bootstrap5进行form表单渲染)