回答

10

github上所有auth的最新版本都有其外部模板,但是Pypi上的模板并非如此,您只需将项目目录中的repo克隆并覆盖模板即可。就如此容易。

+0

thnx它帮助。 – user993563 2012-03-06 10:17:45

+9

克隆存储库被认为是一种非常糟糕的做法。 – Red 2013-09-15 12:01:57

+4

@红色你能否详细说明一下? – Medorator 2014-06-06 10:50:07

3

看看example应用程序;它有一个templates文件夹,用于指示所需模板的布局

+0

以及我做了什么来实现图书馆在我的模板文件夹添加一个site_base.html有两大块<!DOCTYPE HTML> {%块head_title%} { %端块%} <! - 为Django的allauth做 - > {%块体%} {%端块%} 如何修改或重写内置的模板,在哪个目录可以找到他们里面我的virtualenv? – user993563 2012-02-24 20:52:07

+0

'〜/ .virtualenvs/yourproject/lib/python2.7/site-packages/allauth' – boldnik 2013-06-07 08:20:27

2

要在安装django-allauth后进行自定义,请将其从站点包复制并粘贴到项目apps目录中。通过这种方式,默认的allauth应用及其模板将被用于您项目的allauth应用中。然后,如果你想修改signup.htmlsocialaccount的然后去APPS \ allauth \模板\ socialaccount \ signup.html和编辑工作中 '块内容' 标签进行修改:

{% block content %} 
    // your customized html for signup form 
{% endblock %} 

希望这会帮助你。

+0

已尝试不起作用。 – user993563 2012-03-05 12:10:17

+0

我认为它应该工作。因为第一个django在应用程序(apps \ my_app \ templates \ my_app \)中查找模板,然后在项目模板目录(templates \ my_app \)中,然后转到您的环境站点包。您是否尝试更改site-packages allauth模板中的html? – 2012-03-05 12:28:20

+0

我不认为复制是一种好方法。更好的办法是将'git clone'复制到项目文件夹中,而不是复制代码。 – boldnik 2013-06-07 08:19:20

19

假设你已经设置使用TEMPLATE_DIRS设置像一个项目水平模板目录:

TEMPLATE_DIRS = (os.path.join(PROJECT_DIR, 'templates'),) 

你应该能够显示所有文件夹的here复制到该目录,并根据需要对其进行编辑。大部分模板似乎都在填充{% block content %}块,所以如果您的site_base.html模板在某处定义了该块,则可能是最容易的。

如果您还没有设置TEMPLATE_DIRS,您可以做同样的事情,但可以将模板文件夹复制到其中一个应用的templates目录中。我更喜欢设置TEMPLATE_DIRS,并将主要网站模板保留为base.html,因为它们并不属于特定的应用,但这只是一种偏好;模板加载器应该找到它们。

+1

在目前的版本中,似乎你应该有一个'base.html'(仍有'{%block content%}')。 – Mark 2015-06-08 21:17:09

+2

'''TEMPLATE_DIRS'''已被弃用,并且是TEMPLATES的一部分https://docs.djangoproject.com/en/1.8/ref/templates/upgrading/。将模板/任何东西复制到包中是不好的做法,并且会在以后伤害到你。 – 2016-06-30 20:04:41

8

使用与overriding admin templates相同的逻辑。

+0

链接已过期 – ealeon 2016-03-16 03:50:53

+0

无论链接是1.9还是1.10文档,阅读“在此管理目录中创建以您的应用命名的子目录”真是太神奇了。名称“目录”,复数,在你的“应用程序”之后,单数? – 2017-02-06 04:08:41

9

在您的观点:

from allauth.account.views import SignupView, LoginView 


class MySignupView(SignupView): 
    template_name = 'my_signup.html' 


class MyLoginView(LoginView): 
    template_name = 'my_login.html' 

千万要注意了实例和文档为构建自己的模板。

关注此片的例子,虽然模板:

<form id="signup_form" method="post" action="{% url 'account_signup' %}"> 

,我不得不删除URL链接,使之在我自己的模板正常工作:

<form id="signup_form" method="post" action="">' 
0

所有这些都是很好的建议。

其中大多数应该工作。

只为我工作的事,虽然,包括我自己的模板“项目/应用/模板/帐号/”和自己的应用程序后,确保“Django的allauth”在INSTALLED_APPS 被列。我发现这个here