Allauth注册模板与一页上的普通和社交帐户

时间:2012-11-21 15:13:12

标签: django django-templates django-authentication

我发现allauth模板有点难以理解,并且无法弄清楚我是如何创建一个模板,允许在社交身份验证(在我的情况下为FB)和正常身份验证之间进行选择(电子邮件等),例如Stackoverflow上的那个。

基本上我想使用注册视图来使用{{ form.as_p }}

2 个答案:

答案 0 :(得分:1)

您可以覆盖this模板(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社交认证,您可以根据this template

获得以下内容
{% load socialaccount %} 
<a title="Facebook" class="socialaccount_provider facebook" 
     href="{% provider_login_url facebook process='login' %}">Facebook</a>

这两个提到的模板都是由django-allauth提供的,但是可以通过在你的django应用程序中添加templates文件夹来覆盖,并创建相同的目录结构,在这种情况下:

myapp
  |_templates
        |_account
             |_login.html

并将您的代码放入login.html。这同样适用于您要覆盖的任何其他模板。 Heredjango-allauth的模板。

答案 1 :(得分:0)

您应该为“普通身份验证”创建用户/密码的表单,然后为社交身份验证页面添加链接。

<form>
 user... pass...
</form>
<a href="">Facebook</a>