mongoengine 参考字段未更新
mongoengine referencefield not updated
我有3个Document
类:
class Policy(Document):
name = StringField(required=True)
class Group(Documet):
# ...
policy = ReferenceField('Policy', db_field='policy_id')
class Item(Document):
foo = StringField()
group = ReferenceField(Group, db_field='group_id')
现在 - 当我设置 Item -> Group -> Policy 关系时,在我更新策略之前一切正常。
我在代码中执行此操作,该代码最终会更改 Policy
类型对象(将其称为 x)和 运行 x.save()
中的 .name
正确策略中的数据库得到完美更新,none 的 ObjectId
更改(也不是 ReferenceField
对象)
但仍然:
item = Item.objects.get(foo='needed_item')
policy = item.group.policy
policy.name
包含旧值(好像根本没有更新)
ReferenceField
有手册吗"refresh"我需要运行?
如果您将实例存储在内存中,那么您需要在文档上调用 reload
方法。
我有3个Document
类:
class Policy(Document):
name = StringField(required=True)
class Group(Documet):
# ...
policy = ReferenceField('Policy', db_field='policy_id')
class Item(Document):
foo = StringField()
group = ReferenceField(Group, db_field='group_id')
现在 - 当我设置 Item -> Group -> Policy 关系时,在我更新策略之前一切正常。
我在代码中执行此操作,该代码最终会更改 Policy
类型对象(将其称为 x)和 运行 x.save()
正确策略中的数据库得到完美更新,none 的 ObjectId
更改(也不是 ReferenceField
对象)
但仍然:
item = Item.objects.get(foo='needed_item')
policy = item.group.policy
policy.name
包含旧值(好像根本没有更新)
ReferenceField
有手册吗"refresh"我需要运行?
如果您将实例存储在内存中,那么您需要在文档上调用 reload
方法。