私はdjango-allauth
自分のプロジェクトに使用していsettings.LOGIN_REDIRECT_URL
ますが、ログイン後にユーザーがリダイレクトされる前に、カスタムアダプターを使用していくつかの作業を行おうとしています。関連するコード:
from allauth.account.adapter import DefaultAccountAdapter
from django.conf import settings
class DispersionAccountAdapter(DefaultAccountAdapter):
def get_login_redirect_url(self, request):
""" Retorna la URL por defecto para redirecciónar,
esta lo hace formateando la cadena con el nombre del usuario.
"""
if request.user.is_authenticated():
return settings.LOGIN_REDIRECT_URL.format(
username=request.user.username)
else:
return "/"
そのため、ドキュメントで説明されているように、settings.py に変更を加えました。
LOGIN_REDIRECT_URL = "/{username}/all"
ADAPTER = "dispersion.apps.adapter.DispersionAccountAdapter"
ACCOUNT_ADAPTER = "dispersion.apps.adapter.DispersionAccountAdapter"
ACCOUNT_AUTHENTICATION_METHOD = "username_email"
LOGIN_URL = "/main/login"
http://127.0.0.1:8000/{username}/all
そのため、サーバーを実行してログインしようとすると、代わりにリダイレクトされますhttp://127.0.0.1:8000/jorge/all
(それが私のユーザー名の場合)。セットアップの何が問題なのかわかりません。私はまったく問題なく次のことを試しました:
$ python2 manage.py shell
In [1]: from dispersion.apps.adapter import DispersionAccountAdapter
In [2]: adapter = DispersionAccountAdapter()
アドバイスや修正は大歓迎です!:D