永发信息网

django的user用abstractUser继承来的,为什么密码为明文

答案:2  悬赏:0  手机版
解决时间 2021-04-02 10:20
django的user用abstractUser继承来的,为什么密码为明文
最佳答案
同问。。。
全部回答
1. 确定 User Model 我们推荐一下方式来确定某一django项目使用的user model: # 使用默认User model时 >>> from django.contrib.auth import get_user_model >>> get_user_model() # 使用自定义User model时 >>> from django.contrib.auth import get_user_model >>> get_user_model() 2. 使用settings.AUTH_USER_MODEL 自从django 1.5之后, 用户可以自定义User model了, 如果需要外键使用user model, 官方推荐的方法如下: 在settings中设置AUTH_USER_MODEL: # settings.py # 格式为 "." AUTH_USER_MODEL = "myapp.NewUser" 在models.py中使用 # models.py from django.conf import settings from django.db import models class Article(models.Model): author = models.ForeignKey(settings.AUTH_USER_MODEL) title = models.CharField(max_length=255) 还有需要注意的是, 不要在外键中使用get_user_model(). 3. 自定义 User Model 方法1: 扩展 AbstractUser类 如果你对django自带的User model刚到满意, 又希望额外的field的话, 你可以扩展AbstractUser类: # myapp/models.py from django.contrib.auth.models import AbstractUser from django.db import models class NewUser(AbstractUser): new_field = models.CharField(max_length=100) 不要忘了在settings.py中设置: AUTH_USER_MODEL = "myapp.NewUser" 方法2: 扩展 AbstractBaseUser类 AbstractBaseUser中只含有3个field: password, last_login和is_active. 如果你对django user model默认的first_name, last_name不满意, 或者只想保留默认的密码储存方式, 则可以选择这一方式. 方法3: 使用OneToOneField 如果你想建立一个第三方模块发布在PyPi上, 这一模块需要根据用户储存每个用户的额外信息. 或者我们的django项目中希望不同的用户拥有不同的field, 有些用户则需要不同field的组合, 且我们使用了方法1或方法2: # profiles/models.py from django.conf import settings from django.db import models from flavors.models import Flavor class EasterProfile(models.Model): user = models.OneToOneField(settings.AUTH_USER_MODEL) favorite_ice_cream = models.ForeignKey(Flavor, null=True, blank=True) class ScooperProfile(models.Model): user = models.OneToOneField(settings.AUTH_USER_MODEL) scoops_scooped = models.IntergerField(default=0) class InventorProfile(models.Model): user = models.OneToOneField(settings.AUTH_USER_MODEL) flavors_invented = models.ManyToManyField(Flavor, null=True, blank=True) 使用以上方法, 我们可以使用user.easterprofile.favorite_ice_cream获取相应的profile. 使用这一方法的坏处可能就是增加了代码的复杂性.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
象印焖烧锅和膳魔师焖烧锅哪个好
小川菜摘的介绍
一个三角形,如果高增加6厘米,底不变,面积
怎么装修 客厅没有窗户是暗厅怎么装修效果图
我今年的车险是费改以后上的,上次(费改前)
哪一集!!
填空题请选用H、C、O、S中的元素写出符合下列
K544次列车座位排列
依波路表是原装瑞士进口的吗?
唉,想有个好工作
设计没有规定砂砾垫层的压实度一般多少呢
how did you go to work怎么回答这个问题
从高汉到江都客运总站怎么坐公交车,最快需要
油墨的附着力的影响因素
怎么捉蜻蜓
推荐资讯
淘宝暴利产品有哪些?
增强幼犬体质可按阶段锻炼
What do you want和Can I help you的区别
瓦尔波的对战记录
清丰县濮阳单氏灌汤包地址是什么,有没有知道
楼梯地面做法在哪个图集上
眼睛看东西有重影是怎么回事?我应怎样做?
儿童表演班的种类有哪些?
魔兽世界刷破碎的时候,我跟随别人,然后那人
北欧景好还是法意瑞好
淘宝客网站模板去哪找
2.1 数字功放板TPA3116D2 低音炮 独家红环电
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?