什么是get_user_model()函数?
get_user_model()函数是Django特有的一个函数,它的作用是返回当前项目中使用的用户模型类(User Model)。即返回AUTH_USER_MODEL指定的用户模型类,而不是以硬编码的形式使用User。
如何使用get_user_model()函数?
1.导入
在使用get_user_model()函数前,需要先从django.contrib.auth.models中导入get_user_model函数:
from django.contrib.auth import get_user_model
2.使用get_user_model()
使用get_user_model()函数返回项目中使用的用户模型类(User Model)。如下代码所示:
User = get_user_model()
3.输出User模型信息
使用User模型类实例化一个对象,并输出其信息。如下代码所示:
user = User.objects.create_user(username='johndoe', email='johndoe@example.com', password='password')
print(user.username)
4.实例一
在指定自定义的用户模型时,可以在settings.py中定义AUTH_USER_MODEL变量,比如一个叫MyUser的用户模型类。如下所示:
# app名称为accounts
# accounts/models.py
from django.contrib.auth.models import AbstractUser
class MyUser(AbstractUser):
pass
# settings.py
AUTH_USER_MODEL = 'accounts.MyUser'
现在使用get_user_model()函数获取用户模型类,得到的就是MyUser类。
5.实例二
除了在settings.py中指定用户模型外,也可以在其他地方使用自定义的用户模型类。如下所示:
# app名称为accounts
from django.contrib.auth import get_user_model
from django.contrib.auth.models import AbstractUser
from django.db import models
User = get_user_model()
class MyUser(AbstractUser):
pass
class Article(models.Model):
author = models.ForeignKey(User, on_delete=models.CASCADE)
title = models.CharField(max_length=100)
content = models.TextField()
总结
本篇文章简要介绍了get_user_model()函数的用法和实例。关于函数的使用方法和参数说明,更多请参考Django官方文档。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Django的 get_user_model() 函数:获取用户模型 - Python技术站