我在运行一个教程时遇到了一些问题,这些问题似乎源于以下内容:
(r'^l/login/$', 'django.contrib.auth.views.login'),看起来我做的一切都是对的,但是表格没有显示。如果我按下Login。我返回到没有表单的同一页。
我错过了什么吗?
代码如下:
urls.py:
from django.conf.urls.defaults import *
from formsapp.views import *
from login.views import *
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
#Forms1:
(r'^$', main_page),
#Forms2
(r'^register/', main_page1),
#FormsLogin:
(r'^l/', login_main_page),
(r'^l/login/$', 'django.contrib.auth.views.login'),
(r'^l/logout/$', 'logout_page'),views.py:
from django.http import HttpResponse, Http404, HttpResponseRedirect
from django.contrib.auth import logout
from django.contrib.auth.models import User
from django.template import RequestContext
from django.shortcuts import render_to_response
def login_main_page(request):
return render_to_response('mainpage.html', RequestContext(request))
def logout_page(request):
logout(request)
return HttpResponseRedirect('/l/')base.html:
<html>
<head>
<title> {% block title %}{% endblock %}</title>
</head>
<body>
<h1>{% block head %}{% endblock %}</h1>
{% block content %}{% endblock %}
<br>
<br>
<br>
<a href="/l/">Login Main Page</a>
{% if user.is_authenticated %}
<a href="/l/logout/">Log out </a>
{% else %}
<a href="/l/login/">Log in </a>
{% endif %}
</body>
</html>login.html:
{% extends "base.html" %}
{% block title %}Log in{% endblock %}
{% block head %}Log in{% endblock %}
{% block content %}
{% if form.has_errors %}
<p> Username or password didn't work. Please enter them again </p>
{% endif %}
<form method="post" action=".">
<p><label for="id_username">Username:
</label>{{ form.username }}</p>
<p><label for="id_password">Password:
</label>{{ form.password }}</p>
<input type="hidden" name="next"
value="/l/" />
<input type="submit" value="Log in" />
</form>
{% endblock %}发布于 2010-08-11 21:14:10
URL模式
(r'^l/', login_main_page),将匹配任何以l/开头的URL,并且它被放在l/login之前,所以第二个不会被调用,你应该用$终止regexp
(r'^l/$', login_main_page),https://stackoverflow.com/questions/3457603
复制相似问题