@Daibend
Начинающий пайтон дэв.

Как определить кнопку под каждую форму?

Добрый вечер. Я создал юзера, и создаю страничку, на которой бы залогиненый юзер мог бы сменить пароль, логин либо почту. Есть 3 этих поля, у каждого из них есть своя кнопка. В случае, если в форме я включаю все 3 поля, то у меня почему-то выходит невалид. Попытался сделать 3 формы под каждое поле. Подключил это всё к вьюхе, вроде бы работает. Но! работает из 3 лишь одна форма - могу сменить юзернейм. Он меняется и сохраняется, возле других кнопок отсутствуют поля. Что делать? вот ссылка на пастбин: https://pastebin.com/RqGGe22W
  • Вопрос задан
  • 41 просмотр
Решения вопроса 1
@AlexNest
На мой взгляд, у Вас проблема уже в самом подходе к релализации задачи.
Я бы советовал для каждого элемента (логин/пароль...) создать отдельные формы. К примеру, для смены пароля можно создать классическую схему:
- Старый пароль;
- Новый;
- Подтверждение;
Для почты/логина также следует использовать формы.
Все эти формы можно обрабатывать в одном представлении с помощью префиксов
Пример

if request.method == 'POST':
    if 'bannedphrase' in request.POST: # Имя кнопки
        bannedphraseform = BannedPhraseForm(request.POST, prefix='banned')
        if bannedphraseform.is_valid():
            bannedphraseform.save()
        expectedphraseform = ExpectedPhraseForm(prefix='expected')
    elif 'expectedphrase' in request.POST:
        expectedphraseform = ExpectedPhraseForm(request.POST, prefix='expected')
        if expectedphraseform.is_valid():
            expectedphraseform.save() 
        bannedphraseform = BannedPhraseForm(prefix='banned')
else:
    bannedphraseform = BannedPhraseForm(prefix='banned')
    expectedphraseform = ExpectedPhraseForm(prefix='expected')

Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы