扩展django的user表
来源:互联网 发布:绿豆网络团队 编辑:程序博客网 时间:2024/04/24 05:19
扩张django的user表来增加user中的字段
定义模型
from django.db import modelsfrom django.conf import settingsclass Profile(models.Model): #一对一的关系映射 user = models.OneToOneField(settings.AUTH_USER_MODEL) date_of_birth = models.DateField(blank=True, null=True) photo = models.ImageField(upload_to='users/%Y/%m/%d', blank=True) def __str__(self): return self.user.username为了Django能在开发服务中管理用户上传的多媒体文件,在项目setting.py文件中添加如下设置:MEDIA_URL = '/media/'MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')MEDIA_URL 是管理用户上传的多媒体文件的主URL,MEDIA_ROOT是这些文件在本地保存的路径。我们动态的构建这些路径相对我们的项目路径来确保我们的代码更通用化。在主urls 配置 文件的访问路径from django.conf import settingsfrom django.conf.urls.static import staticif settings.DEBUG: urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
定义modelform 让在前端能修改user模型 进行校验:
from .models import Profileclass UserEditForm(forms.ModelForm): class Meta: model = User fields = ('first_name', 'last_name', 'email')class ProfileEditForm(forms.ModelForm): class Meta: model = Profile fields = ('date_of_birth', 'photo')UserEditForm:允许用户编辑它们的first name,last name, e-mail 这些储存在User模型(model)中的内置字段。ProfileEditForm:允许用户编辑我们存储在定制的Profile模型(model)中的额外数据。用户可以编辑他们的生日数据以及为他们的profile上传一张照片。
编辑视图函数
from .forms import LoginForm, UserRegistrationForm, \UserEditForm, ProfileEditForm@login_requireddef edit(request): if request.method == 'POST': user_form = UserEditForm(instance=request.user, data=request.POST) profile_form = ProfileEditForm(instance=request.user.profile, data=request.POST, files=request.FILES) if user_form.is_valid() and profile_form.is_valid(): user_form.save() profile_form.save() else: user_form = UserEditForm(instance=request.user) profile_form = ProfileEditForm(instance=request.user.profile) return render(request, 'account/edit.html', {'user_form': user_form, 'profile_form': profile_form})
阅读全文
0 0
- 扩展django的user表
- Django笔记 如何扩展User表的字段
- Django笔记 如何扩展User表的字段
- django 扩展user字段
- Django中扩展User模型
- 最简单 扩展django user
- Django中对于Authentication用户User的扩展
- 非profile方式扩展Django User Model
- Django使用Profile扩展User模块
- Django学习笔记 扩展User模型
- Django 重写user表
- 给django admin后台管理user扩展下拉框及多选框的字段
- django 注册、登录及第三方接口程序(2):扩展User表
- django用户表扩展
- django User
- How to Extend Django User Model 如何扩展Django用户模型
- 自己扩展django的过滤器
- Django 应用继承user表设置
- JS----动态添加元素绑定事件
- select实现多选
- DrawerLayoutAndroid组件学习
- c语言内存注意事项
- 一个朴素的基于HTTP协议的项目
- 扩展django的user表
- 课时1 Linux系统的安装
- 给服务器安装系统时无法找到介质解决办法
- 变量、常量
- 面向对象中的继承
- 中位数
- Shell系列—Shell test 命令
- linux解决中文安装后出现乱码的问题
- Hi3531A 海思 开发板 核心板 千兆网口1080P H.264 HDMI VGA SPI