<p>非工作人员无法通过“管理”视图登录,因此您不能</p>
<p>但是,有一个Django视图可以完全满足您的需要:<code>django.contrib.auth.views.login</code></p>
<p>您可以轻松地将其添加到您的<code>urlconf</code>:</p>
<pre><code>from django.contrib.auth.views import login
urlpatterns = ('',
#snip
url(r'^login/$', login)
)
</code></pre>
<p>查看文档以了解如何自定义其行为:<a href="https://docs.djangoproject.com/en/dev/topics/auth/#limiting-access-to-logged-in-users" rel="nofollow noreferrer">https://docs.djangoproject.com/en/dev/topics/auth/#limiting-access-to-logged-in-users</a></p>
<p>您只需要为视图定义一个模板即可使用,默认情况下,该模板应该位于<code>registration/login.html</code>,但可以重写。</p>
<p><strong>更新</strong></p>
<p>1)对于django 1.11+更好地使用<a href="https://docs.djangoproject.com/en/2.0/topics/auth/default/#django.contrib.auth.views.LoginView" rel="nofollow noreferrer">LoginView</a>(即<code>from django.contrib.auth.views import LoginView</code>),因为<code>login</code>代码实际上使用了LoginView,而<code>login</code>的代码甚至有一条警告消息:</p>
<blockquote>
<pre><code>warnings.warn(
'The login() view is superseded by the class-based LoginView().',
RemovedInDjango21Warning, stacklevel=2
)
</code></pre>
</blockquote>
<p>2)您可能需要更改管理员登录页面的默认页眉。这可以通过在上下文中提供<code>site_header</code>来实现。</p>
<p>所以更新版本如下:</p>
<pre><code>from django.contrib.auth.views import LoginView
urlpatterns = [
# your patterns here,
url(r'^login/$',
LoginView.as_view(
template_name='admin/login.html',
extra_context={
'site_header': 'My custom header',
})),
]
</code></pre>