Django2.2: лучший способ подтвердить форму без js - PullRequest
0 голосов
/ 22 апреля 2019

Я хочу реализовать этот алгоритм:

  1. пользователь отправляет форму модели
  2. если метод clean () вызывает ошибку, я не хочу снова показывать форму. Я хочу, чтобы пользователь видел страницу подтверждения с кнопками «подтвердить» и «отменить».

Например,

Книга с таким именем уже существует.

Хотите сохранить еще одну книгу с этим именем?

Да / Отмена

Как лучше в этом случае?

Ответы [ 2 ]

1 голос
/ 22 апреля 2019

Метод clean () вызывается, когда вы вызываете is_valid () в вашем представлении.Таким образом, по вашему мнению, у вас должно быть что-то вроде:

if not my_form.is_valid():
    return render(request, 'confirmation_page_template.html', {})
0 голосов
/ 22 апреля 2019

Если вы работаете с представлениями на основе классов , вам следует переопределить метод form_invalid в соответствии с документами :

form_invalid(форма)

Отображает ответ, предоставляя недопустимую форму в качестве контекста.

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

Однако ...

Вы должны подумать о предоставлениивозможность подтверждения недействительной формы, вы не должны давать пользователю возможность подтвердить неверные данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...