是否有一种很好的方法可以让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
进行查询
答案 0 :(得分:1)
默认ModelBackend
身份验证后端使用:
user = User._default_manager.get_by_natural_key(username_variable)
这基本上是这样做的:
user = User.objects.get(**{User.USERNAME_FIELD: username_variable})