1
- import functools
2
1
from datetime import timedelta
3
2
4
3
from django .db import models
@@ -53,7 +52,7 @@ def add_new_email(self, request, user, email):
53
52
def add_email (self , request , user , email , confirm = False , signup = False ):
54
53
email = email .lower ()
55
54
email_address , created = self .get_or_create (
56
- user = user , email__iexact = email , defaults = {"email" : email }
55
+ user = user , email = email , defaults = {"email" : email }
57
56
)
58
57
59
58
if created and confirm :
@@ -84,7 +83,7 @@ def get_users_for(self, email):
84
83
# this is a list rather than a generator because we probably want to
85
84
# do a len() on it right away
86
85
return [
87
- address .user for address in self .filter (verified = True , email__iexact = email )
86
+ address .user for address in self .filter (verified = True , email = email . lower () )
88
87
]
89
88
90
89
def fill_cache_for_user (self , user , addresses ):
@@ -101,26 +100,22 @@ def get_for_user(self, user, email):
101
100
addresses = getattr (user , cache_key , None )
102
101
email = email .lower ()
103
102
if addresses is None :
104
- ret = self .get (user = user , email__iexact = email )
103
+ ret = self .get (user = user , email = email )
105
104
# To avoid additional lookups when e.g.
106
105
# EmailAddress.set_as_primary() starts touching self.user
107
106
ret .user = user
108
107
return ret
109
108
else :
110
109
for address in addresses :
111
- if address .email . lower () == email . lower () :
110
+ if address .email == email :
112
111
return address
113
112
raise self .model .DoesNotExist ()
114
113
115
114
def is_verified (self , email ):
116
- return self .filter (email__iexact = email , verified = True ).exists ()
115
+ return self .filter (email = email . lower () , verified = True ).exists ()
117
116
118
117
def lookup (self , emails ):
119
- q_list = [Q (email__iexact = e ) for e in emails ]
120
- if not q_list :
121
- return self .none ()
122
- q = functools .reduce (lambda a , b : a | b , q_list )
123
- return self .filter (q )
118
+ return self .filter (email__in = [e .lower () for e in emails ])
124
119
125
120
126
121
class EmailConfirmationManager (models .Manager ):
0 commit comments