详解Django的 get_user_model() 函数:获取用户模型

什么是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官方文档。

本文链接:https://my.lmcjl.com/post/19312.html

展开阅读全文

4 评论

留下您的评论.