覆盖django-allauth中的模板

时间:2019-02-17 20:31:24

标签: django templates override allauth

我已经阅读了所有可以在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。修改了我的项目结构,并将所有身份验证模板(登录,注册等)移到了该位置。

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

my_project / templates / allauth / 在此目录中,我有3个allauth目录: 1.帐户 2. openid 3.socialaccount

在这些目录中,我拥有所有的allauth模板, 另外,base.html

3。我已经在settings.py中修改了“模板设置”,使其看起来像这样:

'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 %}

我一定在做些愚蠢的事情,但似乎找不到。感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

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

# 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