Django: Почему я не могу получить доступ к дополнительным полям в отношениях Many to Many с помощью _set.all в шаблонах. Что не так?

Я хочу вывести дополнительное поле is_valid класса GroupMember (отношение ManytoMany с классом Group). В шаблонах я делаю:

{% for field in user.groupmember_set.all %}{{ field.is_valid }}<br>{% endfor %}

Но ничего не отображается. Где же проблема? Соответствующий код приведен ниже

models.py

from django.contrib.auth.models import User

class Group(models.Model):
    name = models.CharField(max_length=255, unique=True)
    members = models.ManyToManyField(User,through="GroupMember")
    
    def __str__(self):
        return self.name

class GroupMember(models.Model):
    user = models.ForeignKey(User,related_name='user_groups',on_delete=models.CASCADE,)
    group = models.ForeignKey(Group, related_name="memberships",on_delete=models.CASCADE,)
    is_valid = models.BooleanField(default=False)

    def __str__(self):
        return self.user.username

    class Meta:
        unique_together = ("group", "user")

views.py

class SingleGroup(DetailView):
    model = Group

urls.py

path("groups/<pk>/",views.SingleGroup.as_view(),name="single"),

template: groups/<pk>

{% for field in user.groupmember_set.all %}{{ field.is_valid }}<br>{% endfor %}

Обращение через объект Group к записям GroupMember. Нужно ли вам это? Замените bboard на имя папки, в которой лежат ваши шаблоны. У меня так: templates/bboard, которые находятся в папке приложения.

views.py

class SingleGroup(DetailView):
    model = Group
    template_name = 'bboard/templ.html'

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        print(context)
        return context

templ.html

{% for aaa in group.memberships.all %}
<p>{{ aaa }}</p>
{% endfor %}
Вернуться на верх