Cambio password e dati in un profilo user
« il: Marzo 04, 2021, 12:15 »
Ciao a tutti, andrò dritto al dunque, sto sviluppando una piattaforma web (tipo social network) che permette di registrarsi chiedendo i classici dati di una registrazione quindi nome , cognome, università, data di nascita, mail e password.
Quando però provo a modificare la password non mi riscrive la password ma lascia quella inserita in fase di registrazione. Penso sia riferito al metodo utilizzato , allego il codice riferito al form dell'inserimento dati di un user e cambio password:
(codice)
class ProfileForm(FlaskForm):
    email = EmailField('email', validators=[DataRequired(), Email(), validate_email])
    name = StringField('Name', validators=[DataRequired()])
    surname = StringField('Surname', validators=[DataRequired()])
    dateofbirth = DateField('date of birth', validators=[DataRequired()])
    university = SelectField('select university', choices=[(un.id, un.name) for un in University.query])
    course = SelectField('Select course', choices=[(c.id, c.name) for c in Course.query])

    password = PasswordField(
        'password',
        validators=[DataRequired(), Length(min=3, max=80)]
    )
    confirm = PasswordField(
        'Repeat password',
        validators=[
            DataRequired(),
            EqualTo('password', message='Passwords must match.')
        ]
    )
    current_password = PasswordField(
        'Current password',
        validators=[
            DataRequired()
        ]
    )

class ChangePasswordForm(FlaskForm):
    password = PasswordField(
        'password',
        validators=[DataRequired(), Length(min=3, max=80)]
    )
    confirm = PasswordField(
        'Repeat password',
        validators=[
            DataRequired(),
            EqualTo('password', message='Passwords must match.')
        ]
    )

QUESTO è IL CODICE USATO PER LA PAGINA IN CUI è INSERITO IL FORM
(codice)

                <h3>Change Password</h3>
            <form class="form-reset" role="form" method="post" action="">

  {{ form.csrf_token }}
 <div class="mdl-textfield mdl-js-textfield">
                        {{ form.current_password(placeholder="Current password", class='mdl-textfield__input') }}
                        <label class="mdl-textfield__label" for="{{ form.current_password.id }}">{{ form.current_password.label }}</label>
                    </div>
            <span class="error">
      {% if form.current_password.errors %}
        {% for error in form.current_password.errors %}
          {{ error }}
        {% endfor %}
      {% endif %}
    </span>
  <div class="mdl-textfield mdl-js-textfield">
                        {{ form.password(placeholder="New password", class='mdl-textfield__input') }}
                        <label class="mdl-textfield__label" for="{{ form.password.id }}">{{ form.password.label }}</label>
                    </div>
    <span class="error">

      {% if form.password.errors %}
        {% for error in form.password.errors %}
          {{ error }}
        {% endfor %}
      {% endif %}
    </span>
  <p>
  <div class="mdl-textfield mdl-js-textfield">
                {{ form.confirm(placeholder="Confirm", class='mdl-textfield__input') }}
             <label class="mdl-textfield__label" for="{{ form.confirm.id }}">{{ form.confirm.label }}</label>
                    </div>
    <span class="error">
      {% if form.confirm.errors %}
        {% for error in form.confirm.errors %}
          {{ error }}
        {% endfor %}
      {% endif %}
    </span>
  </p>
  <button class="mdl-button mdl-js-button mdl-button--raised mdl-button--accent" type="submit">Update</button>
</form>
        </div>

        </div>
<div class="mdl-layout-spacer"></div>
    </div>
Spero sia stato chiaro nell'esporre il mio problema, grazie per l'attenzione!  :)