diff --git a/ietf/person/fields.py b/ietf/person/fields.py index 88a700cb6..144001f68 100644 --- a/ietf/person/fields.py +++ b/ietf/person/fields.py @@ -28,7 +28,7 @@ class EmailsField(forms.CharField): super(EmailsField, self).__init__(*args, **kwargs) self.widget.attrs["class"] = "tokenized-field" - self.widget.attrs["data-ajax-url"] = lazy(urlreverse, str)("ajax_search_emails") # make this lazy to prevent initialization problem + self.widget.attrs["data-ajax-url"] = lazy(urlreverse, str)("ajax_search_emails") # do this lazy to prevent form initialization problems self.widget.attrs["data-hint-text"] = hint_text if self.max_entries != None: self.widget.attrs["data-max-entries"] = self.max_entries @@ -51,7 +51,7 @@ class EmailsField(forms.CharField): value = super(EmailsField, self).clean(value) addresses = self.parse_tokenized_value(value) - emails = Email.objects.filter(address__in=addresses).select_related("person") + emails = Email.objects.filter(address__in=addresses).exclude(person=None).select_related("person") found_addresses = [e.address for e in emails] failed_addresses = [x for x in addresses if x not in found_addresses] diff --git a/ietf/person/models.py b/ietf/person/models.py index 60b50d5a9..9842d9297 100644 --- a/ietf/person/models.py +++ b/ietf/person/models.py @@ -56,15 +56,15 @@ class PersonInfo(models.Model): return e[0] return None def email_address(self): - e = self.email_set.filter(active=True).order_by("-time") + e = self.email_set.filter(active=True).order_by("-time").first() if e: - return e[0].address + return e.address else: return "" def formatted_email(self): - e = self.email_set.order_by("-active", "-time") + e = self.email_set.order_by("-active", "-time").first() if e: - return e[0].formatted_email() + return e.formatted_email() else: return "" def full_name_as_key(self):