인터넷 파기 2 일 후 나는 내가 발견 한 것을 요약하고 싶다.
1. <form action='some address here'>
:
는 몇 가지 방법이 있습니다. 가장 쉬운 방법.
기본적에게
AllAuth
형태를 확인하기 위해 우리는 다음을 수행해야합니다
다음
# ./manage.py shell
>>> import allauth.account.forms as forms
>>> f = forms.LoginForm()
>>> print(f)
가의 솔루션을 기반으로
<form action="{% url 'account_login' %}" method="post">
{% csrf_token %}
<input type="hidden" name="next" value="{{ request.get_full_path }}" />
<input id="id_login" name="login" placeholder="Username or e-mail" type="text" required />
<input id="id_password" name="password" placeholder="Password" type="password" required />
<label for="id_remember">Remember Me:</label>
<input id="id_remember" name="remember" type="checkbox" />
<button type="submit">Login</button>
<a href="{% url 'account_reset_password' %}">Forgot Password?</a>
</form>
방법을 base.html에 직접 추가 print(f)
의 버전을 편집 ->here < -
2. Contex 프로세서
a) 폴더 만들기 your_project/your_app/context_processor
.
from allauth.account.forms import LoginForm
def login_ctx_tag(request):
return {'loginctx': LoginForm()}
C)을 프로젝트의 SETTINGS
추가 your_app.context_processors.login_ctx.login_form_ctx' in
TEMPLATES` 섹션에서 : login_ctx.py
추가에 __init__.py
및 login_ctx.py
B) -가이 개 파일을 넣습니다. 같은 뭔가 :
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates'), os.path.join(BASE_DIR, 'templates', 'allauth')],
'APP_DIRS': True,
'OPTIONS': {
'debug': DEBUG,
'context_processors': [
'your_app.context_processors.login_ctx.login_form_ctx', # <- put your processor here
'django.template.context_processors.debug',
# [...other processors...]
],
},
},
]
D) 당신의 *.html
에서 당신이 다음을 추가해야합니다
{% if not user.is_authenticated %}
<form action="{% url 'account_login' %}" method="post">
{% csrf_token %}
<input type="hidden" name="next" value="{{ request.get_full_path }}" />
{{ loginctx }}
<button type="submit">Login</button>
</form>
{% else %}
{# display something else here... (username?) #}
{% endif %}
3. 템플릿 태그
A) 만들기 폴더 your_project/your_app/templatetags
.이 두 파일을 넣어 - login_tag.py
추가에 __init__.py
및 login_tag.py
B)을 :
from django import template
from allauth.account.forms import LoginForm
register = template.Library()
@register.inclusion_tag('profiles/true_login.html')
def login_form_tag(current_page=None):
return {'loginform': LoginForm(),
'redirect_to': current_page}
C)your_project/your_app/templates/your_app/
에서 메이크업 파일 login_form.html
을 내용으로 :
{% load account %}
{% if not user.is_authenticated %}
<form action="{% url 'account_login' %}" method="post">
{% csrf_token %}
<input type="hidden" name="next" value="{{ redirect_to }}" />
{{ loginform }}
<button type="submit">Login</button>
</form>
{% else %}
{# display something else here... (username?) #}
{% endif %}
D) 어떤 *.html
에서 상단에 추가해야합니다. {% load login_tag %}
하고, 필요한 장소에 {% login_form_tag request.get_full_path %}
2 층과 3 메소드를 추가 네이티브 AllAuth
양식을 보여줍니다. {{form}}
, ->here <을 사용하여 어떻게 든 편집해야하는 경우 문서에서 몇 가지 예를 찾을 수 있습니다. 우리의 경우 form
에 대한
<div class="fieldWrapper">
{{ form.subject.errors }}
{{ form.subject.label_tag }}
{{ form.subject }}
</div>
또한 loginctx
또는 loginform
당신이 당신의 자신의 양식을 작성하거나 AllAuth
을 상속에 가져올 수로 변경해야합니다 다음 문서에 표시되어있는 경우 무엇인가가 있음을 언급하고 싶 context processor
또는 templatetag
입니다.
두 가지 방법
을 기반으로 ->
this solution < - 필요에 따라 3 가지 방법에
는 (성공 로그인의 경우, 이전 페이지로 사용자를 반환 site.com/account/login
에서 원래 AllAuth
템플릿에 리디렉션 다른) 작품 리디렉션 .
위의 모든 사항은 SignUP에 구현할 수 있습니다.
이 또한 내가 대신
site.com/account/login
로 리디렉션 잘못된 사용자 이름 \ 암호의 경우 오류를 표시하는 방법을 어떤 사람을 물었다, 명제는
AJAX
을 사용했지만, 현재이 내 지식의 부족합니다. 기본 AllAuth보기에 대한 연결 signin \ up 양식에 대한 기본 정보 ->
here < -을 찾을 수 있습니다. 누군가 그것을 구현하거나 튜토리얼을 찾을 수 있다면 여기에 게시하십시오.
게시물에보기를 포함 할 수 있습니까? –
@MichaelFourre, 여기에는 문제가있는 것으로 보입니다. 나는 SO (example - http://stackoverflow.com/questions/29499449/django-allauth-login-signup-form-on-homepage)와 인터넷 (http://notesbyanerd.com/joint-login-and)에서 찾았습니다. -signup-django-allauth-view) 일부보기 샘플 있지만 드롭 다운 폼에 연결하는 방법을 잘 모르겠습니다. 원본보기는 여기에 있습니다 - https://github.com/pennersr/django-allauth/blob/master/allauth/account/views.py – TitanFighter
하지만보기는 어디 있습니까? SignupView를 부모 클래스로 사용하고 있습니까? –