在我的view.py中,我有一个变量 - 例如' email'。在我的forms.py中,我有一个电子邮件字段 - 例如:
email = forms.EmailField(label="Email adress")
我想将其更改为:
email = forms.EmailField(label="Email adress", widget=forms.TextInput(attrs={'readonly': 'readonly'}))
当我的view.py中的电子邮件变量被填充时(从None到任何值)。默认情况下,电子邮件设置为“无”我怎样才能做到这一点?
答案 0 :(得分:1)
您可以使用Form
init()
设置属性:
def __init__(self, *args, **kwargs):
super(MyForm, self).__init__(*args, **kwargs)
# Either pass as kwarg form = MyForm(email='some@email.com')
email = kwargs.get('email', None)
# Or as initial value form = MyForm(initial={'email': 'some@email.com'})
email = self.fields['email'].initial
if email is not None:
self.fields['email'].attrs.update({'readonly': 'readonly'})
# or you could potentially do this, depending on what you're trying to achieve
self.fields['email'].disabled = True