首页 > 编程问答 >在 Django 表单中使用正确的 Bootstrap CSS 进行单选表单输入

在 Django 表单中使用正确的 Bootstrap CSS 进行单选表单输入

时间:2024-07-22 12:03:51浏览次数:8  
标签:python css django django-forms bootstrap-5

如何让 Django 表单将正确的 Bootstrap 渲染到 Radio select 表单输入?

我在表单中传递了 form-control form-check classess,但生成的表单 HTML 对于 radio select 选项并不准确。

我正在寻找渲染引导程序原色和内联单选按钮。

表单

class PersonForm(forms.Form):
Gender = forms.ChoiceField(required=True, widget=forms.RadioSelect(
    attrs={"label":"Gender", "id":"G", "placeholder": "Gender", "class":"form-control form-check"}), choices=genders.items)

HTML

<div id="G" class="form-control form-check">
<div>
    <label for="G_0"><input type="radio" name="Gender" value="M" label="Gender" id="G_0" placeholder="Gender" class="form-control form-check" required="">
 Male</label>

</div>
<div>
    <label for="G_1"><input type="radio" name="Gender" value="F" label="Gender" id="G_1" placeholder="Gender" class="form-control form-check" required="">
 Female</label>

</div>
<div>
    <label for="G_2"><input type="radio" name="Gender" value="N" label="Gender" id="G_2" placeholder="Gender" class="form-control form-check" required="">
 Not-Applicable</label>
</div>

> enter image description here


你几乎做对了!问题出在你将 form-control form-check 类应用到了错误的元素上。在 Bootstrap 中,你需要对 input 元素应用 form-check-input 类,对 label 元素应用 form-check-label 类。

此外,你不需要 placeholder 属性,因为单选按钮没有占位符。

以下是更新后的代码:

表单:

class PersonForm(forms.Form):
    Gender = forms.ChoiceField(
        required=True,
        widget=forms.RadioSelect(attrs={'class': 'form-check-input'}),
        choices=genders.items,
        label="Gender",
    )

模板:

<div class="form-group">
  {{ form.Gender.label_tag }}
  {% for radio in form.Gender %}
  <div class="form-check">
    {{ radio }}
    <label class="form-check-label" for="{{ radio.id_for_label }}">
      {{ radio.choice_label }}
    </label>
  </div>
  {% endfor %}
</div>

这段代码将会:

  1. 为每个单选按钮创建一个 div ,并添加 form-check 类,以实现内联布局。
  2. form-check-input 类应用到每个 input 元素。
  3. form-check-label 类应用到每个 label 元素。
  4. 使用 radio.id_for_label 动态地将 label 与相应的 input 元素关联起来。

通过这些更改,你的单选按钮现在将正确地使用 Bootstrap 的样式。

标签:python,css,django,django-forms,bootstrap-5
From: 78776892

相关文章

  • Python selenium 网络抓取 recaptcha
    我想抓取一个网站,但在此之前有一个验证码,我什至使用api获取了数据,并且我还将其注入到网站中,因为网页没有提交按钮,我无法提交。流程是这样的,如果我解决同一网址中的验证码,隐藏的内容将被显示。但它并没有得到解决。我到处都找过了。我找不到解决方案。谁能帮我解决这个问题?......
  • Python 装饰器 详解+案例
    Python装饰器是一种特殊的函数,用于修改其他函数的功能。装饰器可以在不改变原函数代码的情况下,对函数进行增加、修改或者扩展功能。装饰器的语法形式是在函数定义前使用@符号,并在@后面加上装饰器的名称。装饰器函数接受被装饰函数作为参数,并返回一个修改后的函数。impo......
  • 如何在 vercel 部署中路由 python 和 typescript 无服务器函数
    我从一个带有Next.js和Typescript前端以及python后端的全栈应用程序开始。由于我们想在vercel上部署,因此我们将所有后端功能迁移到/api文件夹中的typescript函数中,可通过以下方式访问:fetch('api/**foldername**)问题是我有一个简单的pytorch模型,因此......
  • 通过django admin添加动态字段
    我环顾了堆栈,但找不到任何答案。所以我有一个像这样的模型:classDynamicModel(models.Model):config=models.JSONField()def__str__(self):returnself.config我现在想要做的是将json字段键值对显示为独立字段,并且还能够以相同的方式编辑它们,就......
  • python中datetime模块
    datetime模块可以更方便的显示日期,并对日期进行计算。datetime模块中常用的类及其功能描述如下:datetime.datetime------>表示日期时间的类(常用)datetime.timedelta------>表示时间间隔的类(常用)datetime.date------>表示日期的类datetime.time------>表示时间的类datetime.......
  • Python - requests
    前言:介绍:安装及验证:使用:连续接口请求:传参方式: 前言:当你上班无聊的时候,你做什么,说实话有人让我写个requests的教程,教程我觉得网上已经有很多教程了,也很全面,我还是不要献丑了介绍:哎,我认为就是一个接口请求的仓库,不过requests属于第三方库,......
  • Python学习计划——2.4列表推导式(List Comprehensions)
    列表推导式是Python的一种简洁且强大的语法,用于生成新的列表。它可以用更少的代码、更清晰的方式来创建列表,特别是在处理简单的循环和条件操作时。1.基本语法列表推导式的基本语法如下:[expressionforiteminiterable]expression:表达式,计算结果用于生成列表的元素。ite......
  • Python学习计划——2.3常用内置函数(len, max, min, sum, etc.)
    Python提供了许多内置函数,用于简化对数据结构的操作。以下是一些常用的内置函数及其详细说明。1.len()len()函数用于返回对象(如列表、元组、字符串、字典等)的长度(元素个数)。示例:#列表fruits=["apple","banana","cherry"]print(len(fruits))#输出:3#元组c......
  • 哪个 Python 框架可以在 Google Collab 中显示和更改图像?
    我希望能够在使用GoogleCollab时为RL绘制高fps的位图。我现在可以使用OpenCV绘制图像cv2_imshowgoogle替换cv2.imshow但是,它无法替换现有图像,它下面绘制了新的我能够在替换imshow函数中使用一些JavaScript来修复它。但刷新率约为......
  • VSCode 自动建议 python 导入而不依赖 Intellisense
    我正在使用Transformer中的AutoModel之类的对象,并且经常遇到自动导入建议无法找到的对象。我总是希望VSCode建议“从Transformer中执行”,而不是费心寻找它找不到的原因每当看到未定义的“AutoModel”时,都会导入AutoModel”,因此无需扫描任何python导入目录。这......