class UpdatePersonForm(forms.ModelForm):
class Meta:
model = Person
widgets = {
'first_name': TextInput(attrs={'placeholder': 'Enter Employees First Name'}),
}
def __init__(self, *args, **kwargs):
super(UpdatePersonForm, self).__init__(*args, **kwargs)
for visible in self.visible_fields():
visible.field.widget.attrs['class'] = 'form-control'
2条答案
按热度按时间oaxa6hgo1#
这不起作用的原因是使用
{{form.firstname}}
会呈现一个完整的输入字段。如果你查看源代码,你会发现类似于下面的内容:有些浏览器足够智能,可以正确地呈现嵌入的
<input>
字段,这就是为什么你只剩下一个表单字段和它周围的其他东西。要真正实现所需的功能,需要将占位符作为小部件应用到
forms.py
中,我不知道表单的确切外观,所以我只是使用forms.ModelForm
展示了它的一个版本:我还添加了class属性
form-control
,这样输入字段也将具有该类。你可以在Django文档中找到更多关于这个的信息
希望我能帮到你。祝你愉快:)
rta7y2nd2#
使用|{{form.firstname}中的安全|安全}}或任何地方的标签打印在前端.如果没有比检查你所有的前端的结束标签