Фильтр представления на основе группы пользователей

Я пытаюсь фильтровать запрос дальше, чтобы показывать только те записи, где Groups совпадает с группой вошедших пользователей. Я новичок в Python и не уверен, как добавить дополнительный фильтр в нижеприведенное представление.

View

@login_required(login_url='login')
def home(request):
   q= request.GET.get('q') if request.GET.get('q') != None else '' 
   infs= Infringement.objects.filter(Q(name__icontains=q) |
                                     Q(infringer__name__icontains=q)
                                                                                
                                    )

Модель

class Infringement (models.Model):

    name = models.CharField(max_length=200)
    link = models.CharField(null=True, blank=True, max_length=200)
    updated = models.DateTimeField(auto_now=True)
    created = models.DateTimeField(auto_now_add=True)
    infringer = models.ForeignKey(Infringer, on_delete=models.SET_NULL,null=True)
    player = models.ForeignKey(Player, on_delete=models.SET_NULL,null=True)
    customer = models.ForeignKey(Customer, on_delete=models.SET_NULL,null=True)
    status = models.ForeignKey(Status, on_delete=models.SET_NULL,null=True)
    groups = models.ForeignKey(Group, on_delete=models.CASCADE,default=1)
    
    class Meta:
        ordering = ['-updated', '-created']`

Я пробовал добавить нижеприведенное, но оно не работает.

infs= Infringement.objects.filter(Q(name__icontains=q) |
                                     Q(infringer__name__icontains=q|) 
                                       (groups=request.user.groups)                                         
                                      )

Вы можете фильтровать с помощью:

from django.db.models import Q


@login_required(login_url='login')
def home(request):
    q = request.GET.get('q', '')
    infs = Infringement.objects.filter(
        Q(name__icontains=q) | Q(infringer__name__icontains=q),
        groups__user=request.user,
    )
    # …
Вернуться на верх