1.准备工作
2.settings.py
AUTH_PROFILE_MODULE ='blog.UserProfile' #这个是新加的哦,这里的blog是应用名【1】
from django.conf.urls.defaults import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
)
4.blog.urls.py
#coding:utf8
#这是大urls.py的小子集
from django.conf.urls.defaults import patterns, include, url
urlpatterns = patterns('',
url(r'regist/$','blog.views.regist'),
url(r'index/$','blog.views.index'),
url(r'log/$','blog.views.log'),
url(r'disp/$','blog.views.disp'),
url(r'logout/$','blog.views.logout'),
)
#coding:utf8
from django.db import models
from django.contrib.auth.models import User
class UserProfile(models.Model): #【2】
msg = models.CharField(max_length = 200)
user = models.ForeignKey(User,unique = True)
6.views.py
#coding:utf8
# Create your views here.
from django.http import HttpResponse,HttpResponseRedirect
from django.shortcuts import render_to_response
from django import forms
from django.contrib.auth import authenticate,login
from django.contrib.auth.models import User
from blog.models import UserProfile #【3】
#--------------------------------------------------------------
class Log(forms.Form):
name=forms.CharField()
password=forms.CharField(widget=forms.PasswordInput)
def log(req):
if req.method == 'POST':
log = Log(req.POST)
if log.is_valid():
name=log.cleaned_data['name']
password = log.cleaned_data['password']
user = authenticate(username=name,password=password)
if user is not None:
login(req,user)
return HttpResponseRedirect('/shop/index/')
else:
log=Log()
return render_to_response('log.html',{'log':log})
#--------------------------------------------------------------
class Regist(forms.Form):
name=forms.CharField()
password=forms.CharField(widget=forms.PasswordInput)
email=forms.EmailField()
intr = forms.CharField(widget = forms.Textarea())
def regist(req):
if req.method == 'POST':
regist = Regist(req.POST)
if regist.is_valid():
name=regist.cleaned_data['name']
password = regist.cleaned_data['password']
email = regist.cleaned_data['email']
intr = regist.cleaned_data['intr']
user=User.objects.create_user(name,email,password)
userporfile = UserProfile.objects.create(user = user,msg = intr) #【4】
return HttpResponseRedirect('/shop/log/')
else:
regist=Regist()
return render_to_response('regist.html',{'regist':regist})
#-------------------------------------------------------------
def logout(req):
return HttpResponse('ok')
def index(req):
if req.user.is_authenticated():
return HttpResponse(req.user.username)
else:
return HttpresponseRedirect('/shop/login/')
#--------------------------------------------------------------
def disp(req):
users=User.objects.all()
return render_to_response('disp.html',{'users':users})
regist.html,log.html略过
disp.html
<body>
{%for u in users%}
姓名:{{u.username}}<br />
签名:{{u.get_profile.msg}}<br /> <!-- 5 -->
{%endfor%}
</body>