While playing with the API function
pm_broadcast i noticed the recipients must be a list or a tuple. Nevertheless i spent 2h before finding that out (had to look at the source code).
But if you are excepting a list of users, forcing it to be a list or a tuple would mean having to convert the users Queryset returned by django to a list. It seems to be a bit of an overkill to me, why not just make it accept a Queryset only or as well?
def pm_broadcast(sender, recipients, subject, body='', skip_notification=False): ... if not isinstance(recipients, (tuple, list)): recipients = (recipients,) ...