Django DetailView - 将模型中的布尔值显示为复选框
Django DetailView - display boolean from models as checkboxes
有许多片段可以在 Django Forms 中将布尔值显示为复选框(即将 Checkbox 指定为小部件)。例如(假设在模型中为 bar 定义了一个布尔字段):
class FooForm(forms.ModelForm):
class Meta:
model = Foo
fields = ['bar']
widgets = {
'bar' : CheckboxInput(attrs={'class': 'required checkbox form-control'}),
}
但是我还需要在 DetailView 中显示一个(禁用的)复选框(客户这样说)。但是我想不出一个优雅的方法来做到这一点,因为我没有用于详细信息视图的表单元...
我目前的想法是这样的(bootstrap 复选框):
<div class="form-check">
<label class="form-check-label">
<input type="checkbox" {% if foo.bar %}checked{% endif %} disabled>Bar
</label>
<\div>
有没有办法以更接近表单小部件的方式完成此操作?
在视图中获取表单并设置初始值
获取模型对象并设置 bars 初始值
form = YourForm(initial={'bar':modelObject.bar })
然后将表单发送到模板并简单地渲染
喜欢 form.bar
你可以通过多种方式禁用它
喜欢
class FooForm(forms.ModelForm):
class Meta:
model = Foo
fields = ['bar']
widgets = {
'bar' : CheckboxInput(attrs={'class': 'required checkbox form-control','disabled':'disabled or true'}),
}
或查找并使用任何模板过滤器将属性添加到表单字段
有许多片段可以在 Django Forms 中将布尔值显示为复选框(即将 Checkbox 指定为小部件)。例如(假设在模型中为 bar 定义了一个布尔字段):
class FooForm(forms.ModelForm):
class Meta:
model = Foo
fields = ['bar']
widgets = {
'bar' : CheckboxInput(attrs={'class': 'required checkbox form-control'}),
}
但是我还需要在 DetailView 中显示一个(禁用的)复选框(客户这样说)。但是我想不出一个优雅的方法来做到这一点,因为我没有用于详细信息视图的表单元...
我目前的想法是这样的(bootstrap 复选框):
<div class="form-check">
<label class="form-check-label">
<input type="checkbox" {% if foo.bar %}checked{% endif %} disabled>Bar
</label>
<\div>
有没有办法以更接近表单小部件的方式完成此操作?
在视图中获取表单并设置初始值
获取模型对象并设置 bars 初始值
form = YourForm(initial={'bar':modelObject.bar })
然后将表单发送到模板并简单地渲染 喜欢 form.bar 你可以通过多种方式禁用它
喜欢
class FooForm(forms.ModelForm):
class Meta:
model = Foo
fields = ['bar']
widgets = {
'bar' : CheckboxInput(attrs={'class': 'required checkbox form-control','disabled':'disabled or true'}),
}
或查找并使用任何模板过滤器将属性添加到表单字段