国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

使用django自帶的user做外鍵的方法

瀏覽:73日期:2024-09-16 10:02:33

一、使用django自帶的user做外鍵,可以直接在model中使用。只需導(dǎo)入settings模塊

使用方法:在app應(yīng)用(此處是Product應(yīng)用)中的models.py文件,導(dǎo)入settings模塊

# Product / models.pyfrom django.db import modelsfrom django.contrib.auth import settingsclass Product(models.Model): productName = models.CharField(’產(chǎn)品名稱’, max_length=20) productDescription = models.CharField(’產(chǎn)品描述’, max_length=100) producer = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=’負(fù)責(zé)人’, on_delete=models.SET_NULL,blank=True, null=True) createTime = models.DateTimeField(’創(chuàng)建時(shí)間’, auto_now=True) class Meta: verbose_name = ’產(chǎn)品管理’ verbose_name_plural = ’產(chǎn)品管理’ def __str__(self): return self.productName

使用django自帶的user做外鍵的方法

二、自定義User Model

方法一、擴(kuò)展AbstractUser類:只增加字段

app/models.py

from django.contrib.auth.models import AbstractUserfrom django.db import modelsclass NewUser(AbstractUser):new_field = models.CharField(max_length=100)

同時(shí),需要在global_settings文件中設(shè)置:

AUTH_USER_MODEL = 'app.NewUser'

方法二、擴(kuò)展AbstractBaseUser類AbstractBaseUser中只包含3個(gè)field: password, last_login和is_active. 擴(kuò)展方式同上

# django.contrib.auth.base_userclass AbstractBaseUser(models.Model): password = models.CharField(_(’password’), max_length=128) last_login = models.DateTimeField(_(’last login’), blank=True, null=True) is_active = True REQUIRED_FIELDS = [] # Stores the raw password if set_password() is called so that it can # be passed to password_changed() after the model is saved. _password = None class Meta: abstract = True def __str__(self): return self.get_username() def save(self, *args, **kwargs): super().save(*args, **kwargs) if self._password is not None: password_validation.password_changed(self._password, self) self._password = None def get_username(self): '''Return the username for this User.''' return getattr(self, self.USERNAME_FIELD) def clean(self): setattr(self, self.USERNAME_FIELD, self.normalize_username(self.get_username())) def natural_key(self): return (self.get_username(),) @property def is_anonymous(self): ''' Always return False. This is a way of comparing User objects to anonymous users. ''' return False @property def is_authenticated(self): ''' Always return True. This is a way to tell if the user has been authenticated in templates. ''' return True def set_password(self, raw_password): self.password = make_password(raw_password) self._password = raw_password def check_password(self, raw_password): ''' Return a boolean of whether the raw_password was correct. Handles hashing formats behind the scenes. ''' def setter(raw_password): self.set_password(raw_password) # Password hash upgrades shouldn’t be considered password changes. self._password = None self.save(update_fields=['password']) return check_password(raw_password, self.password, setter) def set_unusable_password(self): # Set a value that will never be a valid hash self.password = make_password(None) def has_usable_password(self): ''' Return False if set_unusable_password() has been called for this user. ''' return is_password_usable(self.password) def get_session_auth_hash(self): ''' Return an HMAC of the password field. ''' key_salt = 'django.contrib.auth.models.AbstractBaseUser.get_session_auth_hash' return salted_hmac(key_salt, self.password).hexdigest() @classmethod def get_email_field_name(cls): try: return cls.EMAIL_FIELD except AttributeError: return ’email’ @classmethod def normalize_username(cls, username): return unicodedata.normalize(’NFKC’, username) if isinstance(username, str) else username

到此這篇關(guān)于使用django自帶的user做外鍵的方法的文章就介紹到這了,更多相關(guān)django user做外鍵內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Django
相關(guān)文章:
主站蜘蛛池模板: 国产一区二区三区免费在线视频 | 国产高清视频在线 | 国产区高清| 亚洲天堂视频在线免费观看 | 黄网站色视频免费观看w | 视频一区二区在线 | 久久爽久久爽久久免费观看 | 一 级做人爱全视频在线看 一本不卡 | 国产真实乱系列2孕妇 | 68久久久久欧美精品观看 | 欧美在线一级毛片视频 | 免费嗨片| 国产国产人免费人成成免视频 | 日本波多野结衣在线 | 国产精品漂亮美女在线观看 | 午夜欧美成人 | 男人和女人的做刺激性视频 | 奇米色88欧美一区二区 | 目韩一区二区三区系列片丶 | 欧美日韩色黄大片在线视频 | 日韩欧美一区二区在线 | 蘑菇午夜三级 | 99热久久精品免费精品 | 久久99国产乱子伦精品免 | 国产福利微拍精品一区二区 | 国产亚洲精品2021自在线 | 美女黄视频网站 | 亚洲性久久久影院 | 国产高清在线精品一区在线 | 萌白酱白丝护士服喷水铁牛tv | 毛片在线高清免费观看 | 在线成人天天鲁夜啪视频 | 亚欧色 | 成人区视频 | 国产一区二区精品久久凹凸 | 在线另类 | 在线观看日本永久免费视频 | 日韩一区二区在线视频 | 中文字幕最新中文字幕中文字幕 | 成人欧美一区二区三区在线 | 国产精品一区二区久久精品 |