Django 1.10を使用していて、ログイン、サインインなどのためにallauthのアプリを自分のWebサイトに追加したい。pipからallauthをインストールし、allauthからテンプレートを配置しようとしました。テンプレートフォルダ内のリポジトリとそれらを呼び出しますが、それを機能させる方法がわかりません。
正解はここにあります: https://stackoverflow.com/a/31282443/4992248
yourproject/templates/allauth/account/
_を作成し、_/myproject/Lib/site-packages/allauth/templates/account
_から編集する必要のあるすべてのテンプレートをここに貼り付けます。socialaccount
テンプレートを変更する必要がある場合は、_yourproject/templates/allauth/socialaccount/
_も作成します。
'DIRS': [os.path.join(BASE_DIR, 'templates'), os.path.join(BASE_DIR, 'templates', 'allauth')],
のように_'DIRS'
_の_settings.py
_を編集します最後に、次のようになります。
_TEMPLATES = [
{
'BACKEND': 'Django.template.backends.Django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates'), os.path.join(BASE_DIR, 'templates', 'allauth')],
'APP_DIRS': True,
'OPTIONS': {
'debug': False,
'context_processors': [
'Django.template.context_processors.debug',
'Django.template.context_processors.request',
'Django.template.context_processors.media',
'Django.contrib.auth.context_processors.auth',
'Django.contrib.messages.context_processors.messages',
],
},
},
]
_
/Lib/site-packages/*
_でコードを変更しないでください。モジュールのドキュメントが古くなっているようです。 Django 1.10の場合、次のことを行う必要があります。
_'Django.contrib.sites', # first place
'allauth', # after your modules declarations
'allauth.account',
'allauth.socialaccount',
_
_AUTHENTICATION_BACKENDS = ( 'Django.contrib.auth.backends.ModelBackend', 'allauth.account.auth_backends.AuthenticationBackend', ) SITE_ID = 1 ACCOUNT_EMAIL_REQUIRED = True ACCOUNT_USERNAME_REQUIRED = True
_
for Django 1.10は、TEMPLATESセクション(Django-allauth == 0.28.0)を変更する必要はないようです。「pipfreeze」コマンドを使用してモジュールのバージョンを確認できます。
テンプレートを上書きする人工モジュールを作成します。たとえば、私のプロジェクトの名前はirj_appで、_sharedという名前の新しいアプリケーションを追加しました。次の構造になり、「allauth」宣言の前にINSTALLED_APPSに追加します。
_
irj_app / _shared
_
_
irj_app / _shared / templates / base.html
__
irj_app / _shared / templates / account / base.html
__
irj_app / _shared / templates / account / signup.html
_
irj_app / _shared / templates / _shared / adminlte-template / ... (template for other modules)
それが役に立てば幸い
これを試して:
以下のように、アプリのテンプレートディレクトリにaccountディレクトリを作成します
yourppname/templates/account
およびファイル
yourppname/templates/account/login.html
yourppname/templates/account/signup.html
以下をテンプレートディレクトリに追加しますアプリ名をアプリ名に変更することを忘れないでください
os.path.join(BASE_DIR、 'yourappname'、 'templates')
TEMPLATES = [
{
'BACKEND': 'Django.template.backends.Django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'yourappname', 'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'Django.template.context_processors.debug',
'Django.template.context_processors.request',
'Django.contrib.auth.context_processors.auth',
'Django.contrib.messages.context_processors.messages',
],
},
},
]
これは、Django 2.1.7およびDjango-allauth0.39.1を使用して私のために機能しました:
yourapp/templates/
にaccount
という名前のフォルダーを作成し、最後に構造がyourapp/templates/account/
になり、login.html
やsignup.html
などのオーバーライドするすべてのテンプレートを追加します。settings.py
では私のテンプレートDirsは同じままです
'DIRS': [os.path.join(BASE_DIR, 'templates')],
Allauthテンプレートは、通常のテンプレートオーバーライドメソッドと同じようにオーバーライドできます。
TEMPLATE_DIRS = ( os.path.join(BASE_DIR,'templates'), os.path.join(BASE_DIR,'templates'))
テンプレートディレクトリはプロジェクトディレクトリにあります。テンプレートディレクトリ内に移動し、create a directory named allauth, inside allauth create a template directory and inside that create a directory accounts
Allauthテンプレートと同じ名前のhtmlファイルを作成します。テンプレート名の詳細については、 allauth githubリポジトリ を参照してください。
Djangoの場合-allauth == 0.36.0
git clone https://github.com/pennersr/Django-allauth cd Django-allauth/allauth/templates/account
私はDjango 3.0.4 with Django-allauth 0.41.0
プロジェクトディレクトリにフォルダtemplates
を追加します。フォルダtemplates
内に、app_name
を使用して別のフォルダを追加します。テンプレートlogin.html
の場合は、フォルダaccounts
を作成します。
したがって、フルパスは
/project_name/templates/accounts/login.html
settings.py
のTEMPLATEDirsは同じままです
'DIRS': [os.path.join(BASE_DIR, 'templates')]