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 Python 3
最佳答案
<强>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
?
我认为
- a.您已经创建了一个元素级
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 包的模板。在这种情况下,模板将使用您自己的base.html
。
关于python - Django AllAuth 不扩展 'base.html' ,尽管模板中存在 base.html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65290152/