Переменные Django от форм к шаблонам
Я создаю сайт и пытаюсь сделать так, чтобы пользователь мог изменить свои учетные данные. Я сделал форму для этого:
newUsername = forms.CharField(
label="Enter your new username here*",
required=True,
widget=forms.TextInput(attrs={
'class': 'userChangeCredentials',
'value': "{{ user.username }}"
}))
newEmail = forms.EmailField(
label="Enter your new e-mail adress here*",
required=True,
widget=forms.EmailInput(attrs={
'class': 'userChangeCredentials',
'value': '{{ user.email }}'
}))
newPassword = forms.CharField(
label="Enter your new password here",
required=False,
widget=forms.PasswordInput(attrs={
'class': 'userChangeCredentials',
'value': ''
}))
passwordConfirmation = forms.CharField(
label="Confirm your existing password here*",
required=True,
max_length=256,
widget=forms.PasswordInput(attrs={
'class': 'userChangeCredentials',
'value': ''
}))
Проблема в том, что значения в словаре виджета передаются как необработанный текст, а я хочу, чтобы они были переменными. Вот вывод: Нужно ли мне что-то изменить в html? Мой html:
<form id="UserForm" action="{% url 'user' name=user.username %}" method="POST">
{% csrf_token %}
{{ form|safe }}
<input class="userChangeCredentials" type="submit"></input>
</form>
Я попытался сделать текст необработанным следующим образом:
widget=forms.EmailInput(attrs={
'class': 'userChangeCredentials',
'value': r'{{ user.email }}'
})
Но это не помогло. Я ищу ответ уже около недели и не смог найти ни одного вопроса по этой теме. Я прочитал официальную страницу Django form page, но там нет ничего об этом. Большое спасибо, я вроде как новичок в мире django.
Предполагая, что вы наследуете свою форму от ModelForm
, например:
class UpdateProfileForm(forms.ModelForm)
# all other form fields defination
class Meta:
model = yourModel
fields = ['field 1', 'field 2', 'field 3']
вы можете изменить свои виджеты на :
widget=forms.EmailInput(attrs={
'class': 'form-control'})