Removed 2 DB queries per request when user is authenticated

This commit is contained in:
Eliot Berriot 2019-01-04 13:52:36 +01:00
parent 49e1bec7b9
commit 67de32ccc2
No known key found for this signature in database
GPG key ID: DD6965E2476E5C27
2 changed files with 18 additions and 1 deletions

View file

@ -0,0 +1,17 @@
from django.contrib.auth import backends, get_user_model
class ModelBackend(backends.ModelBackend):
def get_user(self, user_id):
"""
Select related to avoid two additional queries
"""
try:
user = (
get_user_model()
._default_manager.select_related("actor__domain")
.get(pk=user_id)
)
except get_user_model().DoesNotExist:
return None
return user if self.user_can_authenticate(user) else None