Django Mongoengine DictField()未显示在\u字段中

Django Mongoengine DictField()未显示在\u字段中,django,mongodb,mongoengine,Django,Mongodb,Mongoengine,我的模型中有以下django类: class mongoMedia(Document) .... category = StringField() hough_distance = DictField() 用一些数据填充集合后,我需要更新“hough_距离”字段。 我试过这样的方法: media_object = mongoMedia.objects.get(sql_id=100) media_object.update(se

我的模型中有以下django类:

class mongoMedia(Document)
        ....
        category         = StringField()
        hough_distance   = DictField()
用一些数据填充集合后,我需要更新“hough_距离”字段。 我试过这样的方法:

media_object = mongoMedia.objects.get(sql_id=100)
media_object.update(set__category='catX') #it works
media_object.update(set__hough_distance={'k1': v1, 'k2': v2}) #does not work
第二次更新显然不起作用,因为“hough_距离”未列在我的“媒体_对象”的“_字段”中。错误是:

InvalidQueryError: Cannot resolve field "hough_distance"
我也尝试过:

mongoMedia._get_collection().update({'id': media_obj.id }, {'$set': {'hough_distance.%s' % (hough_distance.distance): object_compare} } )
不会在集合中保存任何内容

虽然这在mongodb shell中有效:

db.mongo_media.update( { '_id': media_object._id }, { $set: { 'hough_distance': { 'k1': v1} } } )
如何用有效的Django语法翻译上述内容,以及为什么DictField没有列在object'\u fields'属性中

非常感谢

编辑:

让我换一种说法:
如何在Django中更新MongoDB字典?

这会产生什么结果?mongoMedia.\u字段输出太长,因此我将仅粘贴其中的一部分。事实上,除了DictField类型的字段外,所有字段都列出了。{'category':,'sql_id','description':,什么版本的MongoEngine?