Django Сброс пароля пользователя, MongoDB для хранения информации о пользователе

Я работаю над Django для сброса пароля пользователя. Но вся моя информация о пользователях хранится в MongoDB, а не в стандартной таблице User.

Все примеры, приведенные в StackOverflow и других местах, используют механизм аутентификации пользователя по умолчанию, который мне не помогает.

Мне нужно генерировать ссылку на электронную почту, когда пользователю нужно сбросить пароль.

Forms.py

class EmailForPasswdChange(UserCreationForm):
    username = forms.CharField(max_length = 20, widget=forms.TextInput(attrs={'placeholder': 'Enter your username'}), required=True)
    password1 = forms.CharField(max_length = 20, widget=forms.TextInput(attrs={'placeholder': 'Enter your username'}), required=False)
    password2 = forms.CharField(max_length = 20, widget=forms.TextInput(attrs={'placeholder': 'Enter your username'}), required=False)
    class Meta:
        model = User
        fields = [
        'username',
        ]

Views.py

def sendEmail(request):
    if request.method == 'POST':
        form = EmailForPasswdChange(request.POST)
        if form.is_valid():
            instance = form.save(commit=False)
            instance.is_active =False 
            current_site = get_current_site(request)
            username = request.POST.get('username')
            print(username)
            subject = 'Your Request for Password Reset'
            message = "Your Password will be reset"
            message = render_to_string('email_activation_link.html', {
                 'username':username,
                 'domain':current_site.domain,
                 'uid': urlsafe_base64_encode(force_bytes(username)),
                 'token': token,
               })
            from_email = settings.EMAIL_HOST_USER
            recipient_list = (email,)
            print (recipient_list)
            send_mail(subject, message, from_email, recipient_list)
            return render (request, 'user/forgotpasswd.html', {'inform': "EMail sent for resetting Password"})
        else:
            print (form.errors)
    return render (request, 'user/forgotpasswd.html', {'inform': "EMail Not sent"})

Поскольку я настроил UserCreationForm, при выводе шаблона, если я ввожу имя пользователя, пароль которого должен быть сброшен, так как он уже существует в SQLite DB, выдает ошибку.

Если я изменю его на forms.Form, я не смогу сгенерировать токен, поскольку у меня нет объекта пользователя.

Помогите кто-нибудь, пожалуйста

Спасибо

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