I would modify the properties of all layers in an mxd setting, for instance, all the fields as non editable.
The following script seems to work:
mxd = arcpy.mapping.MapDocument('path-to-mxd')
df = arcpy.mapping.ListDataFrames(mxd,"Layers")
layers = arcpy.mapping.ListLayers(mxd,"*",df)
for lyr in layers:
print "Working on layer: " + lyr.name
fields = arcpy.ListFields(lyr.dataSource)
for f in fields:
f.editable = False
It runs without errors, prints all the layer names but when I open the mxd nothing has changed, the fields are still editable. By the way the mxd IS saved, I just see a new timestamp in the "last modified" property of the file.
Am I missing something?