저는 Python과 django에 대해 매우 익숙합니다. 현재 저는 극복 할 수없는 문제가 있습니다. 나는 모든 문서 및 인터넷 검색을 읽으려고 시도했지만 지금까지는 아무것도 없다.Django crispy forms 오류 메시지
내가 사용해야하는 사용자 정의 로그인 양식이 있습니다. 모든 코드는 지금까지의 작업이 있습니다. 난 그냥 잘 작동하는 사용자를 인증하고 싶지만 잘못된 정보를 입력하면 HttpResponse를 반환하는 대신 잘못된 로그인 세부 정보를 말하는 양식에 오류 메시지를 표시하려고합니다. 그러나 정확히 정확히 파악하지 못하는 것 같습니다. 이와 같이 파삭 파삭 한 형태로 이와 같은 인증 오류를 표시합니다.
어떤 도움이 많이
아, 네
을 감상 할 수있다, 그 어떤 차이을 만드는 경우이 파이썬 3.4이 나의 forms.py입니다 :
class UserLoginForm(forms.ModelForm):
email = forms.CharField(
label="Your email address",
max_length=80,
required=True,
)
password = forms.CharField(
label="Your password",
required=True,
)
def __init__(self, *args, **kwargs):
super(UserLoginForm, self).__init__(*args,**kwargs)
self.helper = FormHelper(self)
self.helper.form_id = 'form-login'
self.helper.form_class = 'form-login'
self.helper.form_method = 'POST'
self.helper.form_action = 'login'
self.helper.field_class = 'form-control input-lg'
self.helper.form_show_errors = True
self.helper.layout = Layout(
Field('email', template='crispy/login_input_email.html'),
Field('password', template='crispy/login_input_password.html'),
)
self.helper.layout.append(Submit('login', 'Log me in', css_class='btn btn-primary btn-lg'))
class Meta:
model = User
fields = ('email', 'password',)
이 내 전망이다. py :
def login_view(request, template_name='login.html'):
redirect_url = request.GET.get('next')
if request.method=='POST':
loginForm = UserLoginForm(request.POST)
if loginForm.is_valid():
username = loginForm.cleaned_data.get('email')
password = loginForm.cleaned_data.get('password')
user = authenticate(username=username, password=password)
if user is not None:
if redirect_url is None:
redirect_url='/home'
login(request, user)
return HttpResponseRedirect(redirect_url)
return HttpResponse("Invalid login details supplied.")
return render_to_response(template_name, {'crispy_form': loginForm}, context_instance=RequestContext(request))
else:
loginForm = UserLoginForm()
return render_to_response(template_name, {'crispy_form': loginForm}, context_instance=RequestContext(request))
마지막으로 이것은 내 템플릿입니다.
{% extends "master.html" %}
{% load crispy_forms_tags %}
{% block content %}
<div class="inner-block">
<h1>Log in to your account</h1>
{% crispy crispy_form crispy_form.helper %}
</div>
{% endblock %}
감사
좋습니다. 이것이 나를 위해 일하는 해결책이었습니다. 감사합니다 – NightStalker
투표하는 것을 잊지 마십시오! :-) –