如何覆盖默认的 django 忘记密码模板?

Posted

技术标签:

【中文标题】如何覆盖默认的 django 忘记密码模板?【英文标题】:How to override default django forgot password template? 【发布时间】:2013-04-12 10:06:24 【问题描述】:

密码重置模板存储在:

/usr/local/lib/python2.7/dist-packages/django/contrib/admin/templates/registration

但是,我想覆盖我的 Django 提供的默认模板。我不想直接进入该目录并编辑模板。因此,我在templates/registration 目录中创建了同名的密码重置模板。但是,我仍然得到相同的内置 django 模板。我的一个模板 password_reset_form.html 看起来像这样:

<!DOCTYPE html>

<html lang="en">
<head>
<meta charset="utf-8">

<title>ATS | Password Reset Form</title>



<!--google web font-->
<link href='http://fonts.googleapis.com/css?family=Droid+Serif:400,400italic,700|Lato:700,300,400' rel='stylesheet' type='text/css'>

<!--style sheets-->
<link rel="stylesheet" media="screen" href=" STATIC_URL bootstrap/css/bootstrap.css"/>
<link rel="stylesheet" media="screen" href=" STATIC_URL bootstrap/css/style.css"/>
<link rel="stylesheet" media="screen" href=" STATIC_URL bootstrap/css/static.css"/>
<style>
li

list-style-type: none;
padding: 0px;
margin: 0px;

#footer 
margin-top: 40px;


</style>
<!--jquery libraries / others are at the bottom-->
<script src=" STATIC_URL bootstrap/js/jquery-1.7.1.min.js" type="text/javascript"></script>
</head>
<body>
<!-- Header starts
================================================== -->
<header id="header">
  <div class="container">
    <div class="row"> 

      <!--logo starts-->
      <div class="span4"> <a href="/login/"><img src=" STATIC_URL bootstrap/img/auto.png"></a> </div>
      <!--logo ends--> 


  </div>
</header>
<div class="container">
<h2 class="lead text-center">Password Reset</h2><br /> <br />



<form action="" class="well span10" method="post">
% csrf_token %
% block content %
<p class="text-info text-center"><strong>Forgotten your password? Enter your e-mail address below, and we'll e-mail instructions for setting a new one.</strong></p>
<span class="text-error text-center"><strong>  form.email.errors </strong></span><br/>
<p class="text-center"><label for="id_email">Enter your E-mail address:</label>  form.email </p> 
<p class="text-center"><button class="btn btn-success">Reset my Password</button></p>
</form>
% endblock %
</div>
<footer id="footer">
  <div class="container">
    <div class="row"> 

      <!--small intro and copyright starts-->
      <div class="span7">
        <a data-toggle="tab" href="/how_it_works/">How it works? &nbsp; &nbsp;</a> 
        <a data-toggle="tab" href="/how_it_works/">Terms and Conditions &nbsp; &nbsp;</a> 
        <a data-toggle="tab" href="/how_it_works/">How to use? </a> <br /><br />
        <p class="copyright"> ©2013 Automatic Text Summarization(ATS) </p>
      </div>

我在模板中缺少什么吗?

【问题讨论】:

【参考方案1】:

您是否已将模板放在您的应用程序目录中?如果是这样,请在 INSTALLED_APP 设置中的 django.contrib.admin 之前指定您的应用。

如果您已将模板放置在其他文件夹中,请确认您已在 TEMPLATE_DIRS 中适当地添加了目录,并且 filesystem loader 位于 TEMPLATE_LOADERS 中的 _app_directories _loader 之前。

应该是这样的

TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader',
    'django.template.loaders.app_directories.Loader',
    )

更多参考Template loaders

【讨论】:

是的,我已经做到了。我为我的应用创建的其他模板正在正确加载,因此我在 settings.py 中正确设置了所需的东西。 @user2032220,检查INSTALLED_APPS中的顺序,你的应用应该在admin之前。 哦,是的,解决了。只要 *** 允许,我都会接受你的回答。但是有什么理由吗?为什么排序会影响这一点? @user2032220,在各个地方找模板肯定是有顺序的,所以django是按照INSTALLED_APPS的顺序在apps目录下找的。​​span> 实际上,如果您的覆盖模板存在于您的项目文件夹(主模板文件夹)中,则无需更改顺序。看来你的目录结构可能是错误的

以上是关于如何覆盖默认的 django 忘记密码模板?的主要内容,如果未能解决你的问题,请参考以下文章

qtcreator忘记密码

如何在 Magento 中覆盖忘记密码消息

账号密码忘记了怎么办?

linux mysql 忘记密码 怎么修改密

浩顺晶密指纹考勤机忘记超级管理员密码且不能与电脑连接,如何重新进入考勤机进行设置? v5(新)求解。

华为p10密码忘记如何解锁?