Фильтр объектов многомандатного поля внутри другой модели

Я начинающий программист, изучающий django. Я пытаюсь создать приложение для контактов, похожее на google contacts. пользователи должны войти в систему, чтобы создавать группы и контакты. Проблема: когда пользователь создает группу, она отображается в поле формы для другого пользователя. Как мне ограничить группы, созданные пользователем, только этим пользователем. Models.py

from django.db import models
from django.contrib.auth.models import User

from uuid import uuid4


class Group(models.Model):

    id = models.UUIDField(default=uuid4, primary_key=True, unique=True, editable=False)

    owner = models.ForeignKey(to=User, on_delete=models.CASCADE, editable=False)


    group_name = models.CharField(max_length=255, verbose_name="Group Name")

    def __str__(self) -> str:
        return str(self.group_name)


class Contact(models.Model):

    id = models.UUIDField(default=uuid4, primary_key=True, unique=True, editable=False)

    owner = models.ForeignKey(to=User, on_delete=models.CASCADE, editable=False)


    first_name = models.CharField(max_length=256, verbose_name='First Name', blank=True, null=True)
    last_name = models.CharField(max_length=256, verbose_name='Last Name', blank=True, null=True)
    other_names = models.CharField(max_length=256, verbose_name='Other Names', blank=True, null=True)
    nick_name = models.CharField(max_length=256, verbose_name='Nickname', blank=True, null=True)

    phone = models.CharField(max_length=256)

    groups = models.ManyToManyField(to=Group, null=True, blank=True)

views.py

from rest_framework import viewsets
from rest_framework import permissions

from django.contrib.auth.models import User

from contacts.models import Group
from contacts.models import Contact

from contacts.serializers import GroupSerializer
from contacts.serializers import ContactSerializer
from contacts.serializers import UserSerializer


class GroupView(viewsets.ModelViewSet):

    permission_classes = [permissions.IsAuthenticated]
    
    serializer_class = GroupSerializer
    
    def get_queryset(self):
        return Group.objects.all().filter(owner=self.request.user)

    def perform_create(self, serializer):
        serializer.save(owner=self.request.user)


class ContactView(viewsets.ModelViewSet):

    permission_classes = [permissions.IsAuthenticated]

    serializer_class = ContactSerializer

    def get_queryset(self):
        return Contact.objects.all().filter(owner=self.request.user)

    def perform_create(self, serializer):
        serializer.save(owner=self.request.user)


class UserView(viewsets.ModelViewSet):

    serializer_class = UserSerializer
    queryset = User.objects.all()

serializers.py

from django.db import models
from rest_framework import serializers

from contacts.models import Group
from contacts.models import Contact

from django.contrib.auth.models import User


class GroupSerializer(serializers.ModelSerializer):
    class Meta:
        model = Group
        fields = '__all__'


class ContactSerializer(serializers.ModelSerializer):
    class Meta:
        model = Contact
        fields = '__all__'


class UserSerializer(serializers.ModelSerializer):
    class Meta: 
        model = User
        fields = ['username', 'email']
Вернуться на верх