我正在尝试在文本输入字段中设置默认值,为用户提供输入内容的示例。这应该是灰色的,一旦开始输入就会消失。我已经尝试设置initial
值,但是当用户开始输入并且格式与用户输入的答案相同时,这不会自动替换。
form = VerbTestForm(initial={'answer': tip.tip})
我需要传递给我的表单才能获得我正在寻找的行为?
答案 0 :(得分:1)
设置小部件的placeholder
属性:
form = VerbTestForm()
form.fields['answer'].widget.attrs['placeholder'] = tip.tip
答案 1 :(得分:1)
您正在设置初始值,但您正在寻找占位符。
你应该尝试这样的事情:
class VerbTestForm(forms.ModelForm):
# Your code ...
class Meta:
# Your code ...
widgets = {
'answer': forms.TextInput(attrs={'placeholder': tip.tip}),
}
或者您可以在定义表单后添加占位符,如:
form = VerbTestForm()
form.fields['answer'].widget.attrs['placeholder'] = tip.tip
官方文档说得很清楚,你应该检查一下:
答案 2 :(得分:1)
小部件占位符是您的答案:
class VerbTestForm(forms.Form):
answer = forms.CharField(widget=forms.TextInput(attrs={'placeholder': tip.tip}))
您可以通过调用as_p或as_table方法
快速测试生成的HTML>>> f = VerbTestForm(auto_id=False)
>>> f.as_table()