Django DRF 3-为多对多表创建端点

Django DRF 3-为多对多表创建端点,django,django-models,django-rest-framework,Django,Django Models,Django Rest Framework,我是django rest框架的新手,我试图了解如何创建端点来创建和更新多对多关系表 models.py class OnlineClass(models.Model): ... teacher = models.ForeignKey(to=User, related_name='online_class', on_delete=models.CASCADE) students = models.ManyToManyField(to=User, through='Enro

我是django rest框架的新手,我试图了解如何创建端点来创建和更新多对多关系表

models.py

class OnlineClass(models.Model):
    ...
    teacher = models.ForeignKey(to=User, related_name='online_class', on_delete=models.CASCADE)
    students = models.ManyToManyField(to=User, through='Enrollment')
    ...

class Enrollment(models.Model)
    online_class = models.ForeignKey(OnlineClass, on_delete=models.CASCADE)
    participant = models.ForeignKey(User, on_delete=models.CASCADE)
对于用户模型,我从django的基本用户模型扩展了它

序列化程序.py

class OnlineClassSerializer(serializers.ModelSerializer):

    participants = serializers.PrimaryKeyRelatedField(queryset=User.objects.all(),many=True)

    class Meta:
        model = OnlineClass
        fields = [
            ...
            'participants',
        ]
        extra_kwargs = {'participants': {'required': False,},}

class EnrollmentClassSerializer(serializers.ModelSerializer):

    online_class = OnlineClassSerializer(many=True)
    participant = UserSerializer(many=True)

    class Meta:
        model = Enrollment
        fields = ['id','online_class','participant']
views.py

class OnlineClassListAPIView(ListCreateAPIView):
    serializer_class = OnlineClassSerializer
    queryset = OnlineClass.objects.all()
    permission_classes = (permissions.IsAuthenticated,)

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

    def get_queryset(self):
        return self.queryset.all()


class OnlineClassDetailsAPIView(RetrieveUpdateDestroyAPIView):
    serializer_class = OnlineClassSerializer
    permission_classes = (permissions.IsAuthenticated, IsOwner,)
    queryset = OnlineClass.objects.all()
    lookup_field = "id"

    def get_queryset(self):
        return self.queryset.all()
现在我想做的是通过向注册表中添加数据来创建一个端点,将参与者添加到OnlineClass表中,我一直在寻找其他解决方案,但我得到的只是在创建OnlineClass时添加参与者,但我想做的是在类和用户数据已经存在时添加参与者

我可以使用补丁端点添加参与者,但要做到这一点,我必须获得我不想向客户端公开的现有参与者列表

我不知道从哪里开始,也不知道如何处理这个问题