/ De inscrição Allauth com conta normal e social em uma página - django, django-templates, django-authentication

Modelo de inscrição Allauth com conta normal e social em uma página - django, django-templates, django-authentication

Acho os modelos allauth um pouco difíceis deentendo e realmente não consigo descobrir como eu seria capaz de criar um modelo que permita escolher entre autenticação social (FB no meu caso) e autenticação normal (e-mail, etc.), como no Stackoverflow, por exemplo.

Basicamente, eu quero usar o {{ form.as_p }} usando a visualização de inscrição.

Respostas:

1 para resposta № 1

Você pode substituir esta modelo (account/login.html).

Para o formulário de login normal, você pode ter o seguinte snippet, extraído do modelo mencionado:

{% 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>

E para a autenticação social do facebook, você pode ter o seguinte, com base em este modelo:

{% load socialaccount %}
<a title="Facebook" class="socialaccount_provider facebook"
href="{% provider_login_url facebook process="login" %}">Facebook</a>

Os dois modelos mencionados são fornecidos pelo django-allauth, mas podem ser substituídos adicionando um templates pasta para seu aplicativo django e criando a mesma estrutura de diretório, neste caso:

myapp
|_templates
|_account
|_login.html

e colocando seu código login.html. O mesmo se aplica a qualquer outro modelo que você deseja substituir. Aqui são os modelos de django-allauth.


0 para resposta № 2

Você deve criar um formulário para o usuário / senha para a "autenticação normal" e, em seguida, adicionar links para as páginas de autenticação social.

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