使用引导程序的 Django 表单
Posted
技术标签:
【中文标题】使用引导程序的 Django 表单【英文标题】:Django form using bootstrap 【发布时间】:2018-09-19 04:43:31 【问题描述】:我有以下字典:
POSSIBLE_POSITIONS = (
('1', 'Brazo'),
('2', 'Muñeca'),
('3', 'Pierna'),
('4', 'Pie'),
)
以下列形式使用:
from interface.positions import *
from django import forms
class PositionForm(forms.Form):
position = forms.ChoiceField(choices = POSSIBLE_POSITIONS, label="", initial=1, widget=forms.Select())
这是呈现我的 html 模板的视图:
def add(request):
return render(request, 'interface/add_user.html', 'device_list': Device.objects.all(), 'form': PositionForm())
这是html代码:
<body>
<form class="square" action="% url 'interface:add_perform' %" method="post">
% csrf_token %
<div class="form-group">
<label>ID paciente</label>
<input autofocus class="form-control" name="user_id" placeholder="Ejemplo: 58192">
</div>
<div class="form-group">
<label>Dispositivo a usar</label>
<select name="device_id" class="form-control">
% for device in device_list %
<option> device.id </option>
% endfor %
<option selected="selected"> Sin dispositivo </option>
</select>
</div>
<div class="form-group">
<label>Posición dispositivo</label>
<div class="form-control"> form </div>
</div>
<div class="form-group square_button">
<button class="btn btn-success btn-md form-control" type="submit"> Crear Paciente </button>
</div>
</form>
</body>
问题在于,正如您在下图中看到的,这不是引导 css,所以它真的很奇怪。我该如何解决?
我希望它像 'Dispositivo a usar' 选择器。
已解决
我在这里找到了解决方案:Define css class in django Forms
【问题讨论】:
【参考方案1】:遍历表单对象并在选择标签中设置form-control
类。它应该可以工作。
def __init__(self, *args, **kwargs):
super(PositionForm, self).__init__(*args, **kwargs)
self.fields['position'].widget.attrs['class'] = 'form-control'
【讨论】:
这必须放在 PositionForm 类上,不是吗?它会引发一个带有“名称”的关键错误。 你应该为position
设置它【参考方案2】:
直接在表单上添加css类即可解决:
class PositionForm(forms.Form):
position = forms.ChoiceField(choices = POSSIBLE_POSITIONS, label="", initial=1, widget=forms.Select(
attrs=
'class': 'form-control'
))
【讨论】:
以上是关于使用引导程序的 Django 表单的主要内容,如果未能解决你的问题,请参考以下文章