擅长:python、mysql、java
<p>我自己找到了答案。在</p>
<p>在深入研究Django的源代码之后,我在<code>django.contrib.auth.forms</code>中找到了一个片段,它处理来自管理站点登录表单的post请求:</p>
<pre><code>def clean(self):
username = self.cleaned_data.get('username')
password = self.cleaned_data.get('password')
if username and password:
self.user_cache = authenticate(username=username,
password=password)
if self.user_cache is None:
raise forms.ValidationError(
self.error_messages['invalid_login'],
code='invalid_login',
params={'username': self.username_field.verbose_name},
)
else:
self.confirm_login_allowed(self.user_cache)
return self.cleaned_data
</code></pre>
<p>请注意,尽管它使用<code>auth.authentication</code>来处理登录操作,但它实际上解析固定字段<code>username</code>和{<cd4>},这意味着默认的管理站点登录表单忽略了您自己的身份验证后端。在</p>
<p>为了解决这个问题,我需要实现我自己的管理网站登录表单。在</p>