使用django-allauth创建新用户时,在模型中设置值
結果
可以通过创建继承自DefaultAccountAdapter的自定义类并重写new_user函数来在新注册时设置值。
前提
-
- django-allauth機能を使用してサインアップ、もしくはソーシャル認証を通してのアカウント作成ができる状態まで実装できていることとします。
-
- 使用モジュールの各バージョンは以下です
Django 3.2.19
django-allauth 0.54.0
操作步骤
- 在存在认证用户模型的应用程序文件夹中准备一个新的py文件,并创建以下自定义适配器类。将认证用户模型自定义为具有可设置值的字段。
from allauth.account.adapter import DefaultAccountAdapter
class CustomAccountAdapter(DefaultAccountAdapter):
def new_user(self, request):
user = super().new_user(request)
# Userモデルはカスタマイズしてhogeのフィールドを持たせておきます。
user.hoge = <新規登録するときに設定したい値>
return user
- 我会在settings.py文件中添加以下代码。
…
INSTALLED_APPS = [
…
# 追加
'django.contrib.sites', #for djnago-allauth
'allauth', #for djnago-allauth
'allauth.account', #for djnago-allauth
'allauth.socialaccount',#for djnago-allauth
]
…
# 追加
AUTHENTICATION_BACKENDS = [
'django.contrib.auth.backends.ModelBackend',
'allauth.account.auth_backends.AuthenticationBackend',
]
…
# 追加
SITE_ID = 1 #django-allauthがsitesフレームワークを使っているため
…
# 追加
ACCOUNT_ADAPTER = 'users.adapters.CustomAccountAdapter'
在新用户注册时,将对用户模型进行数值设定。
就这样了。
请提供更多的上下文以便我理解您需要用中文表达的内容。