Фильтр объектов многомандатного поля внутри другой модели
Я начинающий программист, изучающий 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']