我已经为我的 django 项目编写了一个新的身份验证后端,但是当用户名或密码不正确时,我无法在输出中显示错误消息。
这是我的身份验证功能代码:
def authenticate(self,username=None,password=None ):
try:
authService = AuthenticationLocator().getAuthenticationHttpSoap11Endpoint()
authRequest = authenticateRequest()
authRequest._Username = username
authRequest._Password = password
authResult = authService.authenticate(authRequest)
if authResult._return[0] == 'true':
try:
user = User.objects.filter(username=username)
if len(user) > 0:
usr = user[0]
else:
usr = self.addUser(username)
# Correct Login
return usr
except User.DoesNotExist:
return None
elif authResult._return[0] == 'error':
# Connection Error
return None
elif authResult._return[0] == 'false':
# InCorrect User
return None
except :
return None
def get_user(self, user_id):
try:
return User.objects.get(pk=user_id)
except User.DoesNotExist:
return None
当我的用户名和密码不正确时,我不知道应该编码什么。
我的登录模板是这样的:
{% block content %}
{% if error_message %}
<p class="errornote">{{ error_message }}</p>
{% endif %}
<div id="content-main">
<form action="{{ app_path }}" method="post" id="login-form">
{{ form.non_field_error }}
{% csrf_token %}
<div>
{{ message }}
</div>
<div class="form-row">
<div class="form_cell"><label for="id_username">{% trans 'Username:' %}</label></div>
<div class="form_cell"><input type="text" name="username" id="id_username" /></div>
</div>
<div class="form-row">
<div class="form_cell"><label for="id_password">{% trans 'Password:' %}</label></div>
<div class="form_cell"><input type="password" name="password" id="id_password" /></div>
<input type="hidden" name="this_is_the_login_form" value="1" />
</div>
<div class="submit-row">
<label> </label><input type="submit" value="{% trans 'Log in' %}" />
</div>
</form>
<script type="text/javascript">
document.getElementById('id_username').focus()
</script>
</div>
{% endblock %}
请尽快帮助我;-)
THNX 穆罕默德