覆盖django-allauth中的模板

问题描述 投票:0回答:1

我已经阅读了StackOverflow上可以找到的所有可能的解决方案,并通过了allauth文档。仍然无法指向我的本地(在我的Django项目中)模板而不是allauth模板(即登录,注册等)

1.在settings.py INSTALLED_APPS中将我的应用程序移到allauth之前,以便它看起来像这样:

'users', #my custom user model app
'date_track.apps.DateTrackConfig', # main app

'django.contrib.sites',
'allauth',
'allauth.account',
'allauth.socialaccount',
'allauth.socialaccount.providers.twitter',

]

2.修改了我的项目结构并将allauth模板(登录,注册等)移动到此位置。

  • 结构现在看起来像这样:

my_project / templates / allauth /在这个目录里面我有3个allauth dirs:1。account 2. openid 3.socialaccount

在这些目录中,我有所有的allauth模板,加上base.html

3.我已将settings.py中的TEMPLATES设置修改为如下所示:

'DIRS': [os.path.join(BASE_DIR, 'templates'), os.path.join(BASE_DIR, 
'templates', 'allauth','accounts', 'socialaccount')],

然而,每当我从我的主页(继承自我的项目的base.html)访问链接时,它就会转到以下模板:site-packages / allauth / templates / account目录。

base.html具有指向模板的链接,如下所示:

{% if user.is_authenticated %}
   <li class="nav-item">
     <p><h6>You are Logged in as <I>{{user.username}}</I></h6></p>
  </li>
  <li class="nav-item">
     <a class="nav-link active" href="{% url 'account_email' 
     %}">Email</a>
  </li>
  <li class="nav-item">
     <a class="nav-link" href="{% url 'account_logout' %}">Sign 
     out</a>
  </li>
{% else %}
  <li class="nav-item">
    <a class="nav-link" href="{% url 'account_login' %}">Sign in</a>
 </li>
 <li class="nav-item">
   <a class="nav-link " href="{% url 'account_signup' %}" 
    tabindex="-1">Sign up</a>
 </li>
{% endif %}

我必须做些傻事,但我似乎无法找到它。谢谢您的帮助!

django templates override allauth
1个回答
1
投票

让您的模板目录结构与此匹配:

# correct
templates\account
templates\openid
templates\socialaccount

看起来你有一个到多个目录:

# incorrect
templates\allauth\account
templates\alluth\openid
templates\alluth\socialaccount

链接到allauth源[1]以供参考

[1] https://github.com/pennersr/django-allauth/tree/master/allauth/templates

© www.soinside.com 2019 - 2024. All rights reserved.