@matveyvarg

Как добавить ManyToMany используя perform_update?

Часть модели :
class Entry(models.Model):

    user = models.ForeignKey(User, related_name='entries')
    drivers = models.ManyToManyField(Driver, related_name='entries', blank=True, null=True)
    ...

Serializer:
class EntrySerializer(serializers.ModelSerializer):

    class Meta:
        model = Entry
        fields = '__all__'
        extra_kwargs = {'user': {'read_only': True}, 'driver': {'read_only': True}}

View:
class SetAsDriver(generics.UpdateAPIView):
    permission_classes = (IsAuthenticated, IsDriver)
    queryset = Entry.objects.all()
    serializer_class = EntrySerializer

Пытаюсь понять как можно используя perform_update добавить к объектам drivers еще один. Например должно получиться что-то вроде :
class SetAsDriver(generics.UpdateAPIView):
    permission_classes = (IsAuthenticated, IsDriver)
    queryset = Entry.objects.all()
    serializer_class = EntrySerializer

    def perform_create(self,serializer):
        serializer.data.drivers.add(self.request.user.driver)
        serializer.save()
  • Вопрос задан
  • 128 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы