有没有一种很好的方法可以让 Django 用户模型使用通用 USERNAME_FIELD 进行查询?
换句话说,代替:
User.objects.get(username='my_user') 或 User.objects.get(email='test@user.com')
我想做这样的事情:
User.objects.get(User.USERNAME_FIELD=a_username_variable)
显然,后者会抛出一个SyntaxError,但我想问的是是否有一种方法可以根据USERNAME_FIELD进行查询
请您参考如下方法:
默认ModelBackend身份验证后端使用:
user = User._default_manager.get_by_natural_key(username_variable)
这基本上是在做:
user = User.objects.get(**{User.USERNAME_FIELD: username_variable})
