Django1.10扩展User属性增加头像上传功能-创新互联

Django自带的User模型没有头像和电话这两项属性,因此需要通过扩展User达到我们想要的效果,根据官方的文档,扩展新字段到User只需要用one-to-one模型即可。

创新互联建站长期为上千客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为乐昌企业提供专业的成都网站设计、成都网站制作、外贸网站建设乐昌网站改版等技术服务。拥有十年丰富建站经验和众多成功案例,为您定制开发。

一、创建一个APP

python manage.py startapp CustomUser

二、在models里面创建用户模型,使用one-to-one关联User

from __future__ import unicode_literals

from django.db import models

# Create your models here.

from django.contrib.auth.models import User

class MyUser(models.Model):
    user = models.OneToOneField(User)
    phone = models.CharField(max_length=20, null=True, blank=True)
    avatar = models.ImageField(upload_to='photo', null=True, blank=True)

三、增加admin配置,admin后台可以填写这两个新字段:

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User

from CustomUser.models import MyUser

# Define an inline admin descriptor for Employee model
# which acts a bit like a singleton
class EmployeeInline(admin.StackedInline):
    model = MyUser
    can_delete = False
    verbose_name_plural = 'myuser'

# Define a new User admin
class UserAdmin(UserAdmin):
    inlines = (EmployeeInline, )

# Re-register UserAdmin
admin.site.unregister(User)
admin.site.register(User, UserAdmin)

admin后台效果:

Django1.10 扩展User属性增加头像上传功能

四、修改settings User指向:

AUTH_PROFILE_MODULE = 'CustomUser.MyUser'

五、生成数据库:

python manage.py makemigrations CustomUser
python manage.py migrations

六、上传头像需要media配置,故settings需增加配置:

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

在manage.py同一层新建media目录

七、配置urls.py:

from django.conf import settings
from django.conf.urls.static import static

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

八、template上使用头像:


   
      
         
         {{ request.user.username }} 
      
      
         
         
  • 编辑资料
  •          
  • 重置密码
  •                    
  • 退出系统
  •           

    另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


    网站题目:Django1.10扩展User属性增加头像上传功能-创新互联
    网站地址:http://cdiso.cn/article/dcopgs.html

    其他资讯