use*_*661 3 html python forms django
我有一个带有几个典型字段的 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."))
Run Code Online (Sandbox Code Playgroud)
在网站上呈现表单时,我使用以下代码创建字段:
<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>
Run Code Online (Sandbox Code Playgroud)
问题是我想要某些字段(电子邮件、名字、姓氏)的占位符,但我不希望它们成为“电子邮件地址”、“名字”等通用占位符。基于应用程序的业务逻辑,我希望它们是来自视图上下文的实际姓名和电子邮件地址,但用户仍然有权在使它们成为最终版本之前进行更改。
我想利用表单的便利性,但似乎没有一种简单的方法可以在不完全放弃 Django 表单的情况下仅使用常规 HTML 标签来动态生成占位符属性。有什么想法吗?
您可以将占位符动态设置为表单字段:
def someview(request):
form = SomeForm(..)
if some_condition:
form.fields['email'].widget.attrs['placeholder'] = instance.email
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1728 次 |
| 最近记录: |