首先创建Profile应用
python manage.py startapp profiles
profiles/models.py
# -*- coding: utf-8 -*- from django.db import models from django.contrib.auth.models import User from django.db.models.signals import post_save class UserProfile(models.Model): user = models.OneToOneField(User) nickname = models.CharField(max_length=16, default='', blank=True) sex = models.IntegerField(default=0) phone = models.CharField(max_length=16, default='', blank=True) def __str__(self): return self.nickname def __unicode__(self): return self.nickname def create_user_profile(sender, instance, created, **kwargs): if created: profile = UserProfile() profile.user = instance profile.save() post_save.connect(create_user_profile, sender=User)
profiles/admin.py
# -*- coding: utf-8 -*- from django.contrib import admin from django.contrib.auth.models import User from django.contrib.auth.admin import UserAdmin from .models import UserProfile class ProfileInline(admin.StackedInline): model = UserProfile max_num = 1 can_delete = False class UserProfileAdmin(UserAdmin): inlines = [ProfileInline, ] admin.site.unregister(User) admin.site.register(User, UserProfileAdmin)
settings.py
添加
AUTH_PROFILE_MODULE = 'profiles.UserProfile'
测试
$ python manage.py syncdb $ python manage.py shell > from django.contrib.auth.models import User > user = User() > user.username='testuser' > user.save() > User.objects.all()[0].userprofile
补充知识:django中登录到accounts/profile/的解决方案
在project的setting里加一句话就Okay!
LOGIN_REDIRECT_URL = '/index'
以上这篇Django使用Profile扩展User模块方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
桃源资源网 Design By www.nqtax.com
暂无“Django使用Profile扩展User模块方式”评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。