"manage.py loaddata" cannot work with python dumps (but tries hard anyway)
|Reported by:||Malcolm Tredinnick||Owned by:||Russell Keith-Magee|
|Component:||Core (Management commands)||Version:||master|
|Has patch:||no||Needs documentation:||no|
|Needs tests:||no||Patch needs improvement:||no|
If you use dumppdata with --format=python and then try to load the result with loaddata, it fails with an error about using non-ints as string offsets inside serializers.python.Deserializer.
This actually makes sense. although it took me more than a couple of minutes to realise it. In core.management we are reading the input file and passing it to the deserializer, but the deserializer for python assumes the input is a python object, not a string (a good thing; we don't eval() untrusted code).
We should probably just abort with a sensible error is loaddata tries to use the python format, because the current error message looks like it should work but there is something wrong with the dump.
Assigning to Russell, just for laughs, since he's been playing in this area a lot of late and might have some bright ideas.