У меня проблема с моим пользовательским бэкэндом аутентификации с 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())
Заранее спасибо!