我正在django上做我的第一个应用程序。
我有以下课程:
class SolicitanteForm(ModelForm):
class Meta:
model = Solicitante
fields = ['congregacionOfertante', 'id_oferta', 'observaciones', 'descartado']
Solicitante
扩展了django Model
类,并有其他字段。
我想使用django表单方法来呈现表单。但它只渲染Meta.fields
上定义的字段。我希望它渲染其他字段,但使用<label>
或<span>
代替<input>
readonly
属性。
我该怎么做?
提前致谢。
答案 0 :(得分:1)
要显示所有字段,请尝试在Meta:
中使用__all__
class SolicitanteForm(ModelForm):
class Meta:
model = Solicitante
fields = '__all__'
用于显示表单字段负责widgets。因此,您需要编写具有必要行为的自己的小部件。
在这个post中,作者解决了类似的问题,也许它会有所帮助
答案 1 :(得分:0)
您可以使用readonly
HTML属性。它将使输入可以列表但不可用。在HTML中:
<input type="text" name="congregacionOfertante" value="Cameroon" readonly>
您可以按以下方式自定义表单以添加HTML属性:
class SolicitanteForm(forms.ModelForm):
class Meta:
model = Solicitante
fields = ['congregacionOfertante', 'id_oferta', 'observaciones', 'descartado']
widgets = {
'congregacionOfertante': forms.TextInput({'readonly': 'readonly'})
}
如果您不希望它可点击/选择使用disabled
属性。