Skip to content

Commit d0f05cf

Browse files
committed
Addressed another bug related to using SearchablePersonsField to choose Person objects, rather than Email objects. If one uses this for Person objects, then object.address isn't going to be terribly useful in the form ,,:-). Addresses issue ietf-tools#1684, ietf-tools#1685 and ietf-tools#1686.
- Legacy-Id: 9530
1 parent 881c9cb commit d0f05cf

1 file changed

Lines changed: 6 additions & 2 deletions

File tree

ietf/person/fields.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ def __init__(self,
3939
kwargs["max_length"] = 1000
4040
self.max_entries = max_entries
4141
self.only_users = only_users
42+
assert model in [ Email, Person ]
4243
self.model = model
4344

4445
super(SearchablePersonsField, self).__init__(*args, **kwargs)
@@ -56,7 +57,10 @@ def prepare_value(self, value):
5657
value = ""
5758
if isinstance(value, basestring):
5859
pks = self.parse_select2_value(value)
59-
value = self.model.objects.filter(pk__in=pks).select_related("person")
60+
if self.model == Person:
61+
value = self.model.objects.filter(pk__in=pks)
62+
if self.model == Email:
63+
value = self.model.objects.filter(pk__in=pks).select_related("person")
6064
if isinstance(value, self.model):
6165
value = [value]
6266

@@ -68,7 +72,7 @@ def prepare_value(self, value):
6872
if self.only_users:
6973
self.widget.attrs["data-ajax-url"] += "?user=1" # require a Datatracker account
7074

71-
return u",".join(e.address for e in value)
75+
return u",".join(str(p.pk) for p in value)
7276

7377
def clean(self, value):
7478
value = super(SearchablePersonsField, self).clean(value)

0 commit comments

Comments
 (0)