короче, для get вот так
m2m_field = m2m_field_serializer(source= ..., many=True)
update/create надо кастом писать, но можно использовать m2m_field_serializer для облегчения задачи и оптимизации кода внутри сами create/update
но все равно странно, этот вопрос можно было решить красиво, мне кажется