我正在Django
使用CrispyForms
,我正在将我的旧项目更新为BS3
。
我唯一没有找到如何适应的是form-horizontal
。我的表单看起来像这样:
现在标签始终位于输入的顶部 - 就像之前的form-vertical
一样。
我在堆栈上read一些posts,用Google搜索,但没有人为我提供 crispy 的答案!
最奇怪的是Bootstrap人say that they did not change or remove这个班。
我能做些什么来让我的旧的,可爱的横向`形式回来?
谢谢!
更新
CrispyForms
生成以下内容,即使bootstrap3
为模板包:
<div class="form-group" id="div_id_title">
<label class="control-label requiredField" for="id_title">Titel
<span class="asteriskField">*</span>
</label>
<div class="controls ">
<input type="text" name="title" maxlength="65" id="id_title" class="textinput textInput form-control">
</div>
</div>
答案 0 :(得分:4)
看看这里:
你应该添加
helper.label_class = 'col-lg-x' #for example 'col-lg-2'
helper.field_class = 'col-lg-x' #for example 'col-lg-10'
BS3有一个12列网格系统,这里有更多相关信息 http://getbootstrap.com/css/#grid
这使得表格水平但不幸的是标签对齐左边,我现在正试图解决这个问题。
更新:如果你对字段之间的垂直间距有问题,请在每个字段的外部div中添加一行css类,即html输出:
<div class="form-group row" id="div_id_title">
###labels HTML###
</div>
可能是bootstrap3的field.html模板上的错误。
答案 1 :(得分:3)
您是否将form-control
置于form-group
内?
<form class="form-horizontal" role="form">
<div class="form-group">
<label lass="col-sm-2 control-label">Password</label>
<div class="col-sm-10">
<input type="password" class="form-control" id="inputPassword" placeholder="Password">
</div>
</div>..
</form>
答案 2 :(得分:3)
我花了几个小时试图解决这个问题。对我来说,这很有效。你必须进入项目settings.py并添加以下行:
CRISPY_TEMPLATE_PACK = 'bootstrap3'
通过文档搜索后,我最终发现我必须在crispy-form源代码本身中执行此操作:
if (
TEMPLATE_PACK == 'bootstrap3'
and not is_checkbox(field)
and not is_file(field)
):
css_class += ' form-control'