from_json()
is convert to JSON data an unsaved document instance.
Do save of unsaved document is use parameter force_insert=True
.
...
>>> User.objects
[<User: test1-12345>]
>>> u2.save()
>>> User.objects
[<User: test1-12345>]
>>> u2.save(force_insert=True)
>>> User.objects
[<User: test1-12345>, <User: test2-12345>]
But, your code I can.
I can not code here. (I need fixture data of unit test.)
I environment Django 1.6.5 and mongoengine 0.8.7
>>> json_data1 = u1.to_json()
>>> User.objects.delete() # or User.drop_collection()
>>> User.objects
[]
>>>
...
# json_data1 to dump for pickle. Next load for pickle.
...
>>> u1 = User.from_json(json_data1)
>>> u1.save()
>>> User.objects
[]
>>> u1.save(force_insert=True)
>>> User.objects
[<User: test1-12345>]
>>>
force_insert=True
is only try to create a new document.
Every time use force_insert=True
is create a new document.
Use force_insert=False
is get document in database.