Как реализовать связь с другой моделью через ModelViewset?
Всем привет, не могу понять как реализовать связь между Message и Topic через ModelViewSet.
models.py
class Topic(models.Model):
title = models.CharField(max_length=50, null=False,verbose_name='Название', unique=True)
description = models.TextField(max_length=3500, null=False,verbose_name='Описание')
create_date = models.DateTimeField(auto_now=True, verbose_name='Дата создания')
author = models.ForeignKey(User, on_delete=models.PROTECT, verbose_name='Создатель темы')
slug = models.SlugField(default='', null=False)
class Message(models.Model):
text = models.TextField(max_length=3500, verbose_name='Текст')
create_date = models.DateTimeField(auto_now=True, verbose_name='Дата публикации')
author = models.ForeignKey(User, on_delete=models.PROTECT, verbose_name='Создатель публикации')
topic = models.ForeignKey(Topic, default='', on_delete=models.PROTECT, verbose_name='Тред сообщения')
serializers.py
class MessageSerializer(serializers.ModelSerializer):
class Meta:
model = Message
fields = '__all__'
read_only_fields = ('id', 'create_date', 'author', 'topic')
views.py
class TopicViewSet(viewsets.ModelViewSet):
serializer_class = TopicSerializer
queryset = Topic.objects.all()
authentication_classes = (TokenAuthentication,)
permission_classes = (IsAuthorOrNot, IsAuthenticatedOrReadOnly)
def perform_create(self, serializer):
serializer.save(author=self.request.user)
В общем, что нужно написать в MessageViewSet?
Вопрос закрыт, это работа фронта, а не моя. По итогу MessageViewSet должен выглядеть так:
class MessageViewSet(viewsets.ModelViewSet):
serializer_class = MessageSerializer
queryset = Message.objects.all()
authentication_classes = (TokenAuthentication,)
permission_classes = (IsAuthorOrNot, IsAuthenticatedOrReadOnly)
def perform_create(self, serializer):
serializer.save(author=self.request.user)