Передача переменных 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, но об этом ничего нет.

Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
1
0
55
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В этом случае я предлагаю вам использовать форму только для учетных данных пользователя (адрес электронной почты и имя пользователя), а затем использовать встроенный PasswordChangeView для обновления пароля пользователя, даже не создавая для него класс формы.

Что касается необработанных значений, лучший способ их получить — наследовать форму от модели User.

Нет, это не так, возможно, это лучше, но я создал совершенно новую форму, полная строка класса здесь: ` class UserCredentialsForm(forms.Form): ` спасибо, но я не могу использовать эту идею, так как я создание совершенно новой формы...

Hajsa 18.12.2022 21:23

Вы хотите, чтобы я написал вам код для приведенного выше объяснения, или он не подходит для вашей проблемы?

sajeyks mwangi 19.12.2022 01:28

Я воссоздал исходную форму модели, но я до сих пор не знаю, как передать в нее значение. Если вы сможете воссоздать его в коде, это мне очень поможет, спасибо.

Hajsa 20.12.2022 17:36

Больше не надо! У меня есть ответ здесь, просто простой аргумент экземпляра, где я отображаю форму. Боже мой. В любом случае большое спасибо. dev.to/earthcomfy/django-update-user-profile-33ho

Hajsa 20.12.2022 17:58

Другие вопросы по теме