가입 후 허위 user.is_authenticated 사용자 지정 계정 어댑터를 사용하여 리디렉션을 작동 시켰습니다. 그러나 그들은 로그인하지 않습니다. 이상하게도 allauth는 메시지에 "Successfully signed in X"를 추가합니다. 템플릿의 {% if request.user.is_authenticated %}
을 검사하면 false가 반환되고 is_active
과 동일합니다. . 내가 로그인을 수동으로 이동해야하는 allauth에 대한
내 설정은 다음과 같습니다
ACCOUNT_AUTHENTICATION_METHOD = "username_email"
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_EMAIL_VERIFICATION = "optional"
ACCOUNT_USERNAME_REQUIRED = True
ACCOUNT_SIGNUP_FORM_CLASS = 'main.forms.SignupForm'
LOGIN_REDIRECT_URL = '/'
ACCOUNT_PRESERVE_USERNAME_CASING = True
ACCOUNT_ADAPTER = 'main.adapters.MyAccountAdapter
adapters.py
class MyAccountAdapter(DefaultAccountAdapter):
def get_login_redirect_url(self, request):
path = request.POST.get('next', '/')
return path.format(username=request.user.username)
{{ request.user }}
반환 AnonymousUser
forms.py
class SignupForm(forms.Form):
password1 = forms.CharField(widget=forms.PasswordInput)
password2 = forms.CharField(widget=forms.PasswordInput)
def signup(self, request, user):
reviewer = Reviewer()
reviewer.user = user
reviewer.user.email = self.cleaned_data['email']
reviewer.user.password = self.cleaned_data['password1']
reviewer.user.username = self.cleaned_data['username']
reviewer.save()
def __init__(self, *args, **kwargs):
super(SignupForm, self).__init__(*args, **kwargs)
리디렉션이 예상대로 작동하지만 디버깅이 내 사용자 지정 계정 어댑터가 실행 된 것처럼 보이지 않습니다.
필자는 allauth가 사용하는 양식에서 '다음'필드를 제공하므로 예상대로 리디렉션이 작동하는 것으로 파악되었습니다. request.user
에서, allauth 코드 잘 통해 is_authenticated
을 진행하고 is_active
모두 사실처럼
업데이트
코드를 통해 스테핑이 보인다. 그것은 Django 미들웨어로 전달되고 예상대로 진행되며 응답이 생성됩니다. 그런 다음 다른 리디렉션이 발생하고 있으며 request
개체가 request.user
에 가입 한 페이지에 대한보기를 조회 할 때까지 이제는 AnonymousUser
입니다.