Как повторить действия django-allauth при создании пользователя, или как программно отправить форму в django?

Я пытаюсь импортировать кучу пользователей из старой базы данных в новую систему, и у меня возникают проблемы, когда я просто создаю пользователей и добавляю их адреса электронной почты. Видимо, allauth делает какую-то скрытую магию за кулисами, которую мне трудно понять, потому что когда один из этих пользователей входит в систему, я получаю ошибку в шаблоне электронной почты Invalid block tag on line 298: 'user_display'. Did you forget to register or load this tag? Этого не происходит, когда пользователь, зарегистрированный через форму, которая является подклассом allauth.account.forms.SignupForm, входит в систему.

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

Буду признателен за любую помощь.

Способ обойти это заключался в создании экземпляра EmailAddress из allauth.account.models для каждого пользователя и установке первичных и проверенных значений в True.

EmailAddress.objects.create(user=user, email=user.email, primary=True, verified=True)

Это явно не то, что происходит при регистрации нового пользователя, поскольку verified не должен быть истинным, пока адрес не будет проверен, но для моих целей это сработало.

Вернуться на верх