当我需要在模型中使用当前用户时。 假设我有一个带有current_user字段的模型,例如:
class MyModel(models.Model):
user = models.ForeignKey(User,on_delete=models.CASCADE,default=None)
我的理解是用户可以获取:
1)导入当前用户:
from django.contrib.auth.models import User
或
2)将用户设置为:
from django.contrib.auth import get_user_model
User = get_user_model()
我知道如果我没有错,两者都会有用!!
那么这两种方法之间的主要区别是什么? 感谢
答案 0 :(得分:2)
如果您使用默认的User
模型,则两种方法都可以使用。
但是,如果您使用的是自定义用户模型(或正在编写可重复使用的应用程序),那么您应该使用get_user_model()
来确保获得正确的模型。
请注意,the docs建议您在外键中使用settings.AUTH_USER_MODEL
。
class MyModel(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE,default=None)