我是django的新手。问题:查看我的主页(显示默认的django登录表单)
我必须写下addess:
x.x.x.xxx:8001/login
我想通过以下方式直接访问它:
x.x.x.xxx:8001
如果我的数字是x.x.x.xxx:8001,我现在可以看到的是没有表格的登录页面。
我有:
在我的urls.py中:
urlpatterns = patterns('',
url(r'^$', 'license.views.index', name='auth_login'),
在我的views.py
中from django import template
from django.shortcuts import render_to_response
from django.views.decorators.vary import vary_on_cookie
@vary_on_cookie
def index(request):
return render_to_response('login.html', {
}, context_instance = template.RequestContext(request))
答案 0 :(得分:1)
这是因为您没有将登录表单实例传递给表单。
除非您想在视图中执行某些自定义内容,否则最好使用Django的内置登录视图。您可以为它设置自定义模板:
url(r'^$', 'django.contrib.auth.views.login', {'template_name': 'login.html'})
有关详细信息,请参阅此页:django.contrib.auth.views.login (v1.5) docs
现在,我发现您在视图中使用装饰器,这意味着您确实想要执行自定义内容。在这种情况下,我相信你会想要使用 django.contrib.auth.forms.AuthenticationForm 。尝试在你的视图中做这样的事情:
from django.contrib.auth.forms import AuthenticationForm
from django.shortcuts import render
from django.views.decorators.vary import vary_on_cookie
@vary_on_cookie
def index(request):
form = AuthenticationForm(data=request.POST or None)
return render(request, 'login.html', {
'form': form
})