@@ -56,9 +56,8 @@ def validate(self, value):
5656
5757class MultiUsernameField (forms .Field ):
5858 """
59- Form field that takes a comma-separated list of usernames OR profile
60- names (display names) as input, validates that users exist for each one,
61- and returns the list of users.
59+ Form field that takes a comma-separated list of usernames as input,
60+ and returns a list of active users matching those usernames.
6261 """
6362
6463 def to_python (self , value ):
@@ -68,23 +67,18 @@ def to_python(self, value):
6867 else :
6968 return []
7069
71- users = []
72- usernames = [name .strip () for name in value .split ("," ) if name ]
70+ usernames = list (filter (None , (name .strip () for name in value .split ("," ))))
7371 if usernames :
74- all_users = User .objects .filter (
75- Q (username__in = usernames ) | Q (profile__name__in = usernames )
76- )
77- for user in all_users :
78- if user and user .is_active :
79- users .append (user )
72+ return list (User .objects .filter (is_active = True , username__in = usernames ))
8073
81- return users
74+ return []
8275
8376
8477class MultiUsernameFilterField (forms .Field ):
8578 """
8679 Similar to MultiUsernameField with the following differences:
8780 * Allows system accounts
81+ * Allows filtering by user display name
8882 * Cleaned data provides User querysets rather than User instances
8983 """
9084
0 commit comments