from django import template from django.utils.safestring import SafeUnicode register=template.Library() @register.filter def in_group(user, group): """Returns True/False if the user is in the given group(s). Usage:: {% if user|in_group:"Friends" %} or {% if user|in_group:"Friends,Enemies" %} ... {% endif %} You can specify a single group or comma-delimited list. No white space allowed. """ import re if re.search(',', group): group_list = re.sub('\s+','',group).split(',') elif re.search(' ', group): group_list = group.split() else: group_list = [group] user_groups = [] for group in user.groups.all(): user_groups.append(str(group.name)) if filter(lambda x:x in user_groups, group_list): return True else: return False in_group.is_safe = True