[damned-lies] Fix Person.get_by_attr when returning more than 1 result



commit f51cb20edbb0611066a3e23d99acd28f36bafa4b
Author: Claude Paroz <claude 2xlibre net>
Date:   Sat Sep 21 11:31:54 2013 +0200

    Fix Person.get_by_attr when returning more than 1 result
    
    In that case, take the Person object with most recent last_login
    attribute.

 people/models.py |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)
---
diff --git a/people/models.py b/people/models.py
index 8a5bc5f..bd183b3 100644
--- a/people/models.py
+++ b/people/models.py
@@ -96,10 +96,9 @@ class Person(User):
         if not val:
             return None
         try:
-            person = Person.objects.get(**{key: val})
-        except Person.DoesNotExist:
+            return Person.objects.filter(**{key: val}).order_by('-last_login')[0]
+        except IndexError:
             return None
-        return person
 
     def save(self, *args, **kwargs):
         if not self.password or self.password == "!":


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]