电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

django 解決擴展自帶User表遇到的問題

瀏覽:153日期:2024-10-07 13:41:34

首先要擴展自帶的auth_user表我就放個圖吧,

django 解決擴展自帶User表遇到的問題

同時setting中應該設置:

# 此處重載是為了使UserProfile生效AUTH_USER_MODEL = 'EcdsApp.UserProfile'

本人的項目需要對此表進行擴展,再建兩個子表關聯這個表,關聯關系為一對一:

修改完成之后進行子表關聯:

from django.contrib.auth.models import AbstractUser, Userfrom django.conf import settingsclass UserInfo(models.Model): user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)

直接關聯肯定會報錯,此時加入上面兩段代碼,

第一個是引入 setting

第二個是在關聯字段哪里將原有的User 更換為setting.AUTH_USER_MODEL

此時再次遷移應該就能成功了,

能夠遷移成功但是還會有問題。

我后面的功能代碼中原先寫的有用到;User這個表的地方,代碼運行到這里就會出錯。

報錯信息如下

AttributeError: Manager isn’t available; ’auth.User’ has been swapped for ’EcdsApp.UserProfile’

原因是原User表已經發生改變這里也需要變動一下:

from django.contrib.auth import get_user_modelUser = get_user_model()

直接將這兩行加入到你所有使用到原User表的py文件中,基本問題就可以解決!

補充知識:Python+ django + pycharm項目之擴展默認user表

django為我們提供了默認的user表,但是在實際的開發項目的基本是不滿足實際情況的,所以呢學習web知識,擴展默認user表是必不可少的一部分,雖然很簡單,但是呢還是在此來加深下自己的記憶。

在django項目中,所有的數據庫表都是根據各APP的模型來生成的,我們創建項目后第一件事就是要去完善user表,這個利用的知識點就是Python類的繼承,假如,我要創建UserProfile類來繼承原來的AbstractUser類,從而繼承原來user表的字段,又可以增加自己需要的字段:

在users 用戶app的models.py做如下的修改:

from django.db import models from django.contrib.auth.models import AbstractUser # 引入原來的Abstract類 # 創建新的類來繼承原來的類,并拓展自己的字段class UserProfile(AbstractUser): nick_name = models.CharField(max_length=20, verbose_name=’昵稱’) birthday = models.DateField(verbose_name=’生日’, null=True, blank=True) gender = models.CharField(choices=((’male’, ’男’), (’female’, ’女’)), verbose_name=’性別’, default=’feamale’, max_length=10) address = models.CharField(max_length=50, verbose_name=’地址’, default=’’) mobile = models.CharField(max_length=11, verbose_name=’聯系電話’, null=True, blank=True) image = models.ImageField(upload_to=’image/%Y/%m’, default=’image/default.png’, max_length=100) class Meta: verbose_name = ’用戶信息’ verbose_name_plural = verbose_name def __str__(self): return self.username

修改了models.py中代碼后,需要注冊你創建的app,django中是如何來識別你創建的APP呢,查看各APP的apps,py文件

django 解決擴展自帶User表遇到的問題

文件中的name=‘users’代表著django可以識別該名稱為這個APP的名稱,于是就可以在settings.py文件中進行注冊APP了:

django 解決擴展自帶User表遇到的問題

還需要配置一個參數:AUTH_USER_MODEL = ’users.UserProfile’

django 解決擴展自帶User表遇到的問題

最后遷移數據庫,使用makemigrations 和 migrate 就可以完成user表的擴展了,刷新數據庫,表是不是已經生成了0.0

以上這篇django 解決擴展自帶User表遇到的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Django
相關文章:
主站蜘蛛池模板: 钢衬玻璃厂家,钢衬玻璃管道 -山东东兴扬防腐设备有限公司 | 液压扳手-高品质液压扳手供应商 - 液压扳手, 液压扳手供应商, 德国进口液压拉马 | 一礼通 (www.yilitong.com)-企业礼品解决方案一站式服务平台 | 烟台螺纹,烟台H型钢,烟台钢材,烟台角钢-烟台市正丰金属材料有限公司 | 派财经_聚焦数字经济内容服务平台 | 安平县鑫川金属丝网制品有限公司,声屏障,高速声屏障,百叶孔声屏障,大弧形声屏障,凹凸穿孔声屏障,铁路声屏障,顶部弧形声屏障,玻璃钢吸音板 | 好看的韩国漫画_韩漫在线免费阅读-汗汗漫画 | 贵州科比特-防雷公司厂家提供贵州防雷工程,防雷检测,防雷接地,防雷设备价格,防雷产品报价服务-贵州防雷检测公司 | 心肺复苏模拟人|医学模型|急救护理模型|医学教学模型上海康人医学仪器设备有限公司 | 密集柜_档案密集柜_智能密集架_密集柜厂家_密集架价格-智英伟业 密集架-密集柜厂家-智能档案密集架-自动选层柜订做-河北风顺金属制品有限公司 | 骨龄仪_骨龄检测仪_儿童骨龄测试仪_品牌生产厂家【品源医疗】 | 工业用品一站式采购平台|南创工品汇-官网|广州南创 | 棉服定制/厂家/公司_棉袄订做/价格/费用-北京圣达信棉服 | 水篦子|雨篦子|镀锌格栅雨水篦子|不锈钢排水篦子|地下车库水箅子—安平县云航丝网制品厂 | 四合院设计_四合院装修_四合院会所设计-四合院古建设计与建造中心1 | 贝壳粉涂料-内墙腻子-外墙腻子-山东巨野七彩贝壳漆业中心 | 汽车整车综合环境舱_军标砂尘_盐雾试验室试验箱-无锡苏南试验设备有限公司 | 彩信群发_群发彩信软件_视频短信营销平台-达信通 | nalgene洗瓶,nalgene量筒,nalgene窄口瓶,nalgene放水口大瓶,浙江省nalgene代理-杭州雷琪实验器材有限公司 | 天然气分析仪-液化气二甲醚分析仪|传昊仪器 | 开锐教育-学历提升-职称评定-职业资格培训-积分入户 | 技德应用| 环球电气之家-中国专业电气电子产品行业服务网站! | 斗式提升机,斗式提升机厂家-淄博宏建机械有限公司 | 暖气片十大品牌厂家_铜铝复合暖气片厂家_暖气片什么牌子好_欣鑫达散热器 | 青岛代理记账_青岛李沧代理记账公司_青岛崂山代理记账一个月多少钱_青岛德辉财税事务所官网 | 自动部分收集器,进口无油隔膜真空泵,SPME固相微萃取头-上海楚定分析仪器有限公司 | 北京三友信电子科技有限公司-ETC高速自动栏杆机|ETC机柜|激光车辆轮廓测量仪|嵌入式车道控制器 | 济南电缆桥架|山东桥架-济南航丰实业有限公司 | 振动时效_振动时效仪_超声波冲击设备-济南驰奥机电设备有限公司 北京宣传片拍摄_产品宣传片拍摄_宣传片制作公司-现像传媒 | 泰州物流公司_泰州货运公司_泰州物流专线-东鑫物流公司 | 氢氧化钾厂家直销批发-济南金昊化工有限公司 | 粘度计维修,在线粘度计,二手博勒飞粘度计维修|收购-天津市祥睿科技有限公司 | 对夹式止回阀_对夹式蝶形止回阀_对夹式软密封止回阀_超薄型止回阀_不锈钢底阀-温州上炬阀门科技有限公司 | 不锈钢监控杆_监控立杆厂家-廊坊耀星光电科技有限公司 | led太阳能路灯厂家价格_风光互补庭院灯_农村市政工程路灯-中山华可路灯品牌 | 有机肥设备生产制造厂家,BB掺混肥搅拌机、复合肥设备生产线,有机肥料全部加工设备多少钱,对辊挤压造粒机,有机肥造粒设备 -- 郑州程翔重工机械有限公司 | 蔬菜配送公司|蔬菜配送中心|食材配送|饭堂配送|食堂配送-首宏公司 | 东莞动力锂电池保护板_BMS智能软件保护板_锂电池主动均衡保护板-东莞市倡芯电子科技有限公司 | 深圳善跑体育产业集团有限公司_塑胶跑道_人造草坪_运动木地板 | 环氧铁红防锈漆_环氧漆_无溶剂环氧涂料_环氧防腐漆-华川涂料 |