allauth テンプレートを理解するのは少し難しく、ソーシャル認証 (私の場合は FB) と通常の認証 (メールなど) を選択できるテンプレートを作成する方法がよくわかりません。たとえば、Stackoverflow のもののように。
{{ form.as_p }}
基本的には、サインアップビューを使用して使用したいと考えています。
allauth テンプレートを理解するのは少し難しく、ソーシャル認証 (私の場合は FB) と通常の認証 (メールなど) を選択できるテンプレートを作成する方法がよくわかりません。たとえば、Stackoverflow のもののように。
{{ form.as_p }}
基本的には、サインアップビューを使用して使用したいと考えています。
このテンプレートをオーバーライドできます( account/login.html
)。
通常のログイン フォームの場合、前述のテンプレートから抽出された次のスニペットを使用できます。
{% load i18n %}
<form class="login" method="POST" action="{% url 'account_login' %}">
{% csrf_token %}
{{ form.as_p }}
{% if redirect_field_value %}
<input type="hidden" name="{{ redirect_field_name }}" value="{{ redirect_field_value }}" />
{% endif %}
<a class="button secondaryAction" href="{% url 'account_reset_password' %}">{% trans "Forgot Password?" %}</a>
<button class="primaryAction" type="submit">{% trans "Sign In" %}</button>
</form>
Facebook ソーシャル認証の場合は、このテンプレートに基づいて次のものを使用できます。
{% load socialaccount %}
<a title="Facebook" class="socialaccount_provider facebook"
href="{% provider_login_url facebook process='login' %}">Facebook</a>
上記の両方のテンプレートは django-allauth によって提供されtemplates
ますが、django アプリにフォルダーを追加し、同じディレクトリ構造を作成することでオーバーライドできます。この場合:
myapp
|_templates
|_account
|_login.html
コードを に入れますlogin.html
。オーバーライドする他のテンプレートにも同じことが当てはまります。のテンプレートを次に示しdjango-allauth
ます。
「通常の認証」用のユーザー/パスワード用のフォームを作成してから、ソーシャル認証ページへのリンクを追加する必要があります。
<form>
user... pass...
</form>
<a href="">Facebook</a>