Django AllAuth 不扩展 'base.html',尽管模板中存在 base.html
Django AllAuth does not extend 'base.html', despite base.html existing in templates
base.html 适用于所有其他 url 链接,但一旦我加载 localhost:8000/accounts/(例如注销或登录),css 模板就会执行根本不起作用。该功能仍然有效,只是 css 不起作用。
这是根据教程(从 8:22 到 10:44):https://www.youtube.com/watch?v=bopkZBbIa7c。我一步一步地按照教程进行操作,但它给出的结果与教程不同。 (只是想重申功能没问题,只是普通的 django css)
我目前的settings.py是:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'tinymce',
'posts',
'django.contrib.sites',
'allauth',
'allauth.account',
'allauth.socialaccount',
]
网址:
urlpatterns = [
path('admin/', admin.site.urls),
path('', index),
path('blog/', blog, name='post_list'),
path('post/<id>', post, name = 'post_detail'),
path('search/', search, name = 'search'),
path('tinymce/', include('tinymce.urls')),
path('accounts/', include('allauth.urls')),
path('accounts/profile/', blog, name='post_list')
]
如有任何帮助,我们将不胜感激。谢谢。
Django 版本 3.1.4
Python3
1.原因:allauth
的login.html正在使用自己的base.html
。
Django 会在 allauth
包中寻找 allauth 的 login.html
。您可以在
下查看
myvenv/lib/python3.7/site-packages/allauth/templates/account/login.html
此文件夹下的模板将使用 allauth
中的 base.html
个,位于:
myvenv/lib/python3.7/site-packages/allauth/templates/
不是您在 /templates
下创建的那个。
2。如何强制 allauth
的 login.html 使用您自己的 base.html
?
我假设
- 一个。您已经创建了一个项目明智的
templates
文件夹。
- b。在 settings.py 下,你在
TEMPLATES=[
下有这个
'DIRS': [BASE_DIR.joinpath('templates')],
'APP_DIRS': True,
然后,您将生成一个名为account
的文件夹,并将login.html
放入其中。
templates/account/login.html
现在,当 django 查找模板 login.html
时,它会首先查找 templates/account/login.html
而不是 allauth 包的模板。在这种情况下,模板将使用 your own base.html
.
base.html 适用于所有其他 url 链接,但一旦我加载 localhost:8000/accounts/(例如注销或登录),css 模板就会执行根本不起作用。该功能仍然有效,只是 css 不起作用。
这是根据教程(从 8:22 到 10:44):https://www.youtube.com/watch?v=bopkZBbIa7c。我一步一步地按照教程进行操作,但它给出的结果与教程不同。 (只是想重申功能没问题,只是普通的 django css)
我目前的settings.py是:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'tinymce',
'posts',
'django.contrib.sites',
'allauth',
'allauth.account',
'allauth.socialaccount',
]
网址:
urlpatterns = [
path('admin/', admin.site.urls),
path('', index),
path('blog/', blog, name='post_list'),
path('post/<id>', post, name = 'post_detail'),
path('search/', search, name = 'search'),
path('tinymce/', include('tinymce.urls')),
path('accounts/', include('allauth.urls')),
path('accounts/profile/', blog, name='post_list')
]
如有任何帮助,我们将不胜感激。谢谢。
Django 版本 3.1.4 Python3
1.原因:allauth
的login.html正在使用自己的base.html
。
Django 会在 allauth
包中寻找 allauth 的 login.html
。您可以在
myvenv/lib/python3.7/site-packages/allauth/templates/account/login.html
此文件夹下的模板将使用 allauth
中的 base.html
个,位于:
myvenv/lib/python3.7/site-packages/allauth/templates/
不是您在 /templates
下创建的那个。
2。如何强制 allauth
的 login.html 使用您自己的 base.html
?
我假设
- 一个。您已经创建了一个项目明智的
templates
文件夹。 - b。在 settings.py 下,你在
TEMPLATES=[
下有这个
'DIRS': [BASE_DIR.joinpath('templates')],
'APP_DIRS': True,
然后,您将生成一个名为account
的文件夹,并将login.html
放入其中。
templates/account/login.html
现在,当 django 查找模板 login.html
时,它会首先查找 templates/account/login.html
而不是 allauth 包的模板。在这种情况下,模板将使用 your own base.html
.