2

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

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

4

2 回答 2

1

您可以覆盖模板 ( 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 提供,但可以通过向templatesdjango 应用程序添加文件夹并创建相同的目录结构来覆盖,在这种情况下:

myapp
  |_templates
        |_account
             |_login.html

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

于 2013-09-13T07:21:54.890 回答
0

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

<form>
 user... pass...
</form>
<a href="">Facebook</a>
于 2013-06-11T16:20:41.403 回答