回答

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