Проект Duo Security duo_web содержит демонстрационную версию Django с открытым исходным кодом , которая покажет вам один из способов сделать это (я разработчик Duo).
Демонстрационная установка имеет декоратор @duo_auth_requried, похожий на встроенный @login_required, который проверяет наличие файла cookie сеанса, указывающего, что пользователь прошел 2-ю факторную аутентификацию. Декоратор @login_required проверяет локальную аутентификацию, декоратор @duo_auth_required проверяет аутентификацию 2-го фактора, а отсутствие одного из них перенаправляет пользователя на соответствующую форму.
Разница с вашим описанием в том, что мы не аутентифицируем ни в одной форме, ни передаем учетные данные между формами, мы делаем их отдельно. Просто защитите представление обоими декораторами, и вы можете положиться на Django, чтобы подтвердить локальную аутентификацию, прежде чем будет предпринята попытка аутентификации 2-го фактора.