我想使用django-crispy-forms在单个行上组合两个(或更多)窗口小部件。另请参见所附示例。我认为应该可以使用该库,尽管文档中确实包含有关此问题的示例,并且源代码也无济于事。那么有人使用django-crispy-forms设法获得了类似的结果吗?
此类表单所需的HTML如下所示:
<div class="control-group">
<label for="desc" class="control-label">
Description
</label>
<div class="controls controls-row">
<input class="span2" maxlength="255" type="text" id="desc">
<input class="span3" maxlength="255" type="text">
</div>
</div>
最佳答案
您可以通过在布局对象中的`def init (self,* args,** kwargs):中定义HTML对象来实现。该HTML将为您提供所需的所有自由。
也有另一种方式。要真正在模板文件夹中创建自己的模板,然后在布局对象中定义该模板的路径
例子:
Field('name', template='path/to/template/single_line_input.html'),
其中“名称”实际上是一个小部件。
当然,您总是可以尝试在应用程序的CSS文件中播放,例如
float: left
或display: inline
可能会有所帮助,但是您必须在小部件上定义应内联显示的类。对于不熟悉前端CSS的人来说,这可能有点棘手(因为结果可能在不同的浏览器和不同的分辨率下各不相同,因此不必说需要进行一些测试)。您遇到的问题主要是浏览器默认将输入字段呈现为块对象,因此即使宽度较小,它们也占用一行的所有空间。
关于django - 以django-crispy-forms创建控件行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14977157/