Django 1.5.4 专题18 User Profile
2013-10-14 15:15
330 查看
一.创建app
django-admin.py startapp userprofile
二.在settings.py中添加app
二.添加userprofile/models.py的内容如下
三.修改userprofile/forms.py的内容如下
四.修改userprofile/templates/profile.html的内容如下
五.修改userprofile/urls.py的内容如下
六.修改django_test/urls.py的内容如下
七.修改userprofile/views.py的内容如下
八.修改django_test/templates/loggedin.html的内容如下
./manage.py migrate效果如图
修改database
./manage.py migrate
django-admin.py startapp userprofile
二.在settings.py中添加app
二.添加userprofile/models.py的内容如下
from django.db import models from django.contrib.auth.models import User from django.db.models.signals import post_save from django.dispatch import receiver import logging logr = logging.getLogger(__name__) class UserProfile(models.Model): user = models.OneToOneField(User) likes_cheese = models.BooleanField() favourite_hamster_name = models.CharField(max_length=50) User.profile = property(lambda u: UserProfile.objects.get_or_create(user=u)[0]) @receiver(post_save, sender=User) def make_sure_user_profile_is_added_on_user_created(sender, **kwargs): if kwargs.get('created', False): up = UserProfile.objects.create(user=kwargs.get('instance')) logr.debug("UserProfile created: %s" % up)
三.修改userprofile/forms.py的内容如下
from django import forms from models import UserProfile class UserProfileForm(forms.ModelForm): class Meta: model = UserProfile fields = ('likes_cheese', 'favourite_hamster_name')
四.修改userprofile/templates/profile.html的内容如下
{% extends "base.html" %} {% block content %} <h2>Profile</h2> {% for field in form %} {{field.error}} {% endfor %} <form action="/accounts/profile/" method="post">{% csrf_token %} {{form.as_ul}} <input type="submit" value="Update" /> </form> {% endblock %}
五.修改userprofile/urls.py的内容如下
from django.conf.urls import patterns, include, url urlpatterns = patterns('', url(r'^profile/$', 'userprofile.views.user_profile'), )
六.修改django_test/urls.py的内容如下
七.修改userprofile/views.py的内容如下
from django.shortcuts import render_to_response from django.http import HttpResponseRedirect from django.core.context_processors import csrf from forms import UserProfileForm from django.contrib.auth.decorators import login_required @login_required def user_profile(request): if request.method == 'POST': form = UserProfileForm(request.POST, instance=request.user.profile) if form.is_valid(): form.save() return HttpResponseRedirect('/accounts/loggedin') else: user = request.user profile = user.profile form = UserProfileForm(instance=profile) args = {} args.update(csrf(request)) args['form'] = form return render_to_response('profile.html', args)
八.修改django_test/templates/loggedin.html的内容如下
{% extends "base.html" %} {% block content %} <h2>Hi {{full_name}} you are now logged in!</h2> <p>Click <a href="/accounts/logout/">here</a> to logout.</p> <p>Click <a href="/accounts/profile/">here</a> to edit your profile information</p> {% endblock %}
./manage.py migrate效果如图
修改database
./manage.py migrate
相关文章推荐
- Django 1.5.4 专题18 Custom template tags
- Django 1.5.4 专题23 Celery RabbitMQ
- Django 1.5.4 专题九 update database records
- Django 1.5.4 专题24 Messages
- Django 1.5.4 专题19 heroku s3
- Django 1.5.4 专题一 入门
- Django 1.5.4 专题三 添加admin.py
- Django 1.5.4 专题十 database relationships
- Django 1.5.4 专题13 Web Service with tastypie
- Django 1.5.4 专题25 Notifications
- Django 1.5.4 专题四 Template 提高
- Django 1.5.4 专题14 Basic unit testing
- Django 1.5.4 专题28 键操作
- Django 1.5.4 专题26 Bootstrap
- Django 1.5.4 专题15 south
- Django 1.5.4 专题20 fabric
- Django 1.5.4 专题26 Bootstrap
- Django 1.5.4 专题16 logging
- Django 1.5.4 专题21 haystack whoosh
- Django 1.5.4 专题五 cookies 和 sessions