gpt4 book ai didi

django - BooleanField 复选框无法使用 bootstrap 正确呈现出crispy_forms

转载 作者:行者123 更新时间:2023-12-04 18:42:41 32 4
gpt4 key购买 nike

我正在使用crispy_forms 和FormHelper。我有一个模型字段声明为:

active = models.BooleanField(default=True)

在我的 ModelForm 中,我在布局中尝试了以下两种方法:
    self.helper.layout = Layout(
...
InlineCheckboxes('active'),
Field('active'),
...

两者都没有提供所需的结果:

请查看 image link

在使用 InlineCheckboxes 时,我没有看到复选框并且只使用了 Field,它的格式不正确。

请帮忙

最佳答案

这是link到 Crispy Forms 文档的“ bootstrap 布局对象”部分。

InlineCheckboxes: It renders a Django forms.MultipleChoiceField field using inline checkboxes



InlineCheckboxes 不适合您模型的字段类型。

实现您正在寻找的东西的一种黑客方法是使用 PrependedText text 为空字符串争论。
...
PrependedText('active', ''),
...

检查来源似乎默认情况下 bool 字段呈现 <input> <label> 内的标签标签。使用上面的 hack,'Active' 保留在 <label> 中。和 <input>放在您期望的位置:在 <div> 中带有“控制”css 类。比较以下内容:
PrependedText('active', '') :
  <div id="div_id_active" class="form-group">
<label for="id_active" class="control-label">Active</label>

<div class="controls">
<div class="input-group">
<input type="checkbox" name="active" class="checkboxinput" id="id_active" />
</div>
</div>
</div>
Field('active') :
  <div class="form-group">
<div id="div_id_active" class="checkbox">
<div class="controls">
<label for="id_active" class=""><input type="checkbox" name="active" class=
"checkboxinput checkbox" id="id_active" /> Active</label>
</div>
</div>
</div>

更新

我已经确认这已在 django-crispy-forms 的 dev 分支中修复。

引用此提交: 5c3a268

这个 github 问题: #267

关于django - BooleanField 复选框无法使用 bootstrap 正确呈现出crispy_forms,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22002861/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com