Как включить поля ManyToMany в DjangoRestFramework?

class EntityServiceSerializer(serializers.ModelSerializer):
    class Meta:
        model = Service
        fields =  '__all__'


class EntityCreateSerializer(serializers.ModelSerializer):
    entity_service = EntityServiceSerializerThrough(read_only=True, source='serviceschedule_set', many=True)

        class Meta:
        model = Entity
        fields = '__all__'

Модель выглядит следующим образом

class Entity(models.Model):
    entity_service = models.ManyToManyField(Service, through='ServiceSchedule')

class ServiceSchedule(models.Model):
    service = models.ForeignKey(Service, on_delete=models.CASCADE)
    entity = models.ForeignKey(Entity, on_delete=models.CASCADE)


class Service(models.Model):
    service_name = models.CharField(max_length=256, null=True)
    slug = models.SlugField(max_length=128, unique=True, null=False, editable=False)
    created_at = models.DateTimeField(editable=False, default=timezone.now)
    updated_at = models.DateTimeField(default=timezone.now)
    animal = models.ForeignKey(Animal, on_delete=models.CASCADE, default=None)

У меня есть эти сериализаторы (есть еще поля в модели сущности, но они не имеют значения, так как единственная проблема, которая у меня есть - это Many2Many). Дело в том, что когда я вставляю в body "entity_service": [1,2] в ответе я все равно получаю = []. Даже если в моей базе данных есть Сервисы с пк 1,2,3,4.

Знаете ли вы, как я могу заставить его работать?

Попробуйте без источника, поскольку имя поля совпадает с именем поля модели

class EntityCreateSerializer(serializers.ModelSerializer):
    entity_service = EntityServiceSerializerThrough(read_only=True, many=True)

        class Meta:
        model = Entity
        fields = '__all__'
Вернуться на верх