评论模型有回复,但回复不能有回复

时间:2019-11-21 11:40:11

标签: python django django-rest-framework

我正在创建评论。每个评论都可以有答复,但答复不能有答复。我尝试在序列化程序和视图级别执行此操作,但是没有任何效果。

型号:

class Comment(models.Model):
    reply_to = models.ForeignKey('self', blank=True, null=True, on_delete=models.CASCADE, related_name='replies')

序列化器:

class CommentSerializer(serializers.ModelSerializer):
    episode = serializers.PrimaryKeyRelatedField(read_only=True)
    user = serializers.StringRelatedField()

    class Meta:
        model = Comment
        fields = '__all__'

    def validate(self, data):
        if data['reply_to']:
            comment = data['reply_to']
            if comment.reply_to:
                raise serializers.ValidationError('Нельзя отвечать на ответ')

        return data

视图集:

class CommentViewSet(viewsets.ModelViewSet):
    serializer_class = CommentSerializer


    def perform_create(self, serializer):
        try:
            episode = Episode.objects.get(id=self.kwargs.get('episode_id'))
        except Episode.DoesNotExist:
            raise NotFound

        serializer.save(episode=episode, user=self.request.user)

0 个答案:

没有答案