Создание шаблона-тега для проверки пользователей
Создаю templatetag для проверки состоит ли запрашиваемый пользователь в группе или нет, но он не работает. У меня есть класс модели под названием Team, в этом классе есть члены, и я хочу проверить, является ли пользователь частью команды.
Models.py
class Team(models.Model):
team_admin = models.ForeignKey(Profile, on_delete=CASCADE)
team_name = models.CharField(max_length=55, unique=True, blank=True)
members = models.ManyToManyField(Profile, related_name='teams')
slug = models.SlugField(max_length=500, unique=True, blank=True)
description = models.TextField(default='Team description')
date = models.DateTimeField(auto_now_add=True)
def save(self, *args, **kwargs):
if not self.slug:
self.slug = slugify(self.team_name)
super(Team, self).save(*args, **kwargs)
def get_url(self):
return reverse('projects', kwargs={
'slug':self.slug
})
def __str__(self):
return self.team_name
auth_extras.py
from django import template
from django.contrib.auth.models import Group
register = template.Library()
@register.filter(name='has_group')
def has_group(user, group_name):
group = Group.objects.get(name=group_name)
return True if group in user.groups.all() else False
{% if request.user|has_group:"team" %}
Неважно, что я пробую, если это команда, team.members, members, ничего. всегда получается;
Group matching query does not exist.
Или другой способ проверить, является ли пользователь запроса частью заданной команды?