我有一个带有一些典型字段的Django表单:
first_name = forms.CharField(label=_("First Name"))
last_name = forms.CharField(label=_("Last Name"))
phone = USPhoneNumberField(label=_("Phone Number"))
email = forms.EmailField()
password1 = forms.CharField(label=_("Password"),
widget=forms.PasswordInput)
password2 = forms.CharField(label=_("Password confirmation"),
widget=forms.PasswordInput,
help_text=_("Enter the same password as above, for verification."))
在网站上呈现表单时,我使用以下代码创建字段:
<label for="id_first_name">First Name: </label>{{ form.first_name }}
<label for="id_last_name">Last Name: </label>{{ form.last_name }}
<p><label for="id_email">Email: </label>{{ form.email }}
<p><label for="id_phone">Phone: </label>{{ form.phone }}
<p><label for="id_password1">Password: </label>{{ form.password1 }}
<p><label for="id_password2">Password Confirmation: </label>{{ form.password2 }}
<p><input type="submit" value="Sign up" /></p>
问题是我想要某些字段(电子邮件,名字,姓氏)的占位符,但我不希望它们成为诸如“电子邮件地址”,“名字”等的通用占位符。基于应用程序的业务逻辑,我希望它们是来自视图上下文的实际名称和电子邮件地址,但用户仍有权在最终确定之前进行更改。
我想利用表单的便利性,但是似乎没有一种简单的方法可以动态生成占位符属性,而无需完全继承Django表单而仅使用常规HTML标记。有什么想法吗?
您可以将占位符设置为动态形成字段:
def someview(request):
form = SomeForm(..)
if some_condition:
form.fields['email'].widget.attrs['placeholder'] = instance.email
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句