Проблема с пользовательской аутентификацией и входом в Django - PullRequest
0 голосов
/ 15 мая 2019

У меня проблема с моим пользовательским бэкэндом аутентификации с django.Для школьного проекта мне нужно пройти аутентификацию с помощью GitHub, поэтому я использовал пакет с именем «PyGithub».Я создал свой пользовательский бэкэнд, но получил ошибку «Невозможно принудительно выполнить обновление в save () без первичного ключа».когда я вызываю метод login ().

Я действительно не знаю, что делать, кроме переопределения метода входа, но не знаю, как это сделать.

Вот мой пользовательский метод аутентификациифункция из моего пользовательского бэкэнда:

def authenticate(self, request, username=None, password=None):
    try:
        g = Github(username, password)
        gitUser = g.get_user()
        user = User(username=username)
        return user
    except UnknownObjectException :
        return None
    return None

А вот моя функция, которая вызывает authenticate () и login ():

def connexion(request):
    error = False
    if request.method == "POST":
        form = ConnexionForm(request.POST)
        if form.is_valid():
            username = form.cleaned_data["username"]
            password = form.cleaned_data["password"]
            user = authenticate(username=username, password=password)
            if user:
                login(request, user)
            else:
                error = True
    else:
        form = ConnexionForm()
    return render(request, 'connexion.html', locals())

Заранее спасибо!

...