WIS*_*SAM 5 django django-models
当我需要在模型中使用当前用户时。假设我有一个带有 current_user 字段的模型,例如:
class MyModel(models.Model):
user = models.ForeignKey(User,on_delete=models.CASCADE,default=None)
Run Code Online (Sandbox Code Playgroud)
我的理解是可以获取用户:
1)通过导入当前用户:
from django.contrib.auth.models import User
Run Code Online (Sandbox Code Playgroud)
或者
2)将用户设置为:
from django.contrib.auth import get_user_model
User = get_user_model()
Run Code Online (Sandbox Code Playgroud)
我明白,如果我没有错,两者都会起作用!!
那么这两种方法之间的主要区别是什么?谢谢
如果您使用默认User模型,两种方法都可以使用。
但是,如果您正在使用自定义用户模型(或正在编写可重用的应用程序),那么您应该使用它get_user_model()来确保获得正确的模型。
请注意,文档settings.AUTH_USER_MODEL建议您在外键中使用。
class MyModel(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE,default=None)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1493 次 |
| 最近记录: |