class DefaultMixin:
date_added = DateTimeProperty()
nodes: NodeSet # makes pycharm smarter
def exists(self,**filters):
if not filters:
if not self.id:
raise KeyError('no filters or id provided')
filters['id'] = self.id
return bool(self.nodes.first_or_none(**filters))
def check_if_node_exists(node):
def node_checker(**kwargs):
result = node.nodes.first_or_none(**kwargs)
if result == None:
print("Creating New Node")
return node(**kwargs).save()
print("Returning Existing Node")
return result
return node_checker
@check_if_node_exists
class Employee(StructuredNode):
name = StringProperty()
5条答案
按热度按时间ohfgkhjo1#
Kishore的回答是,我之所以这样做,是因为我想检查对象是否存在,而且有时我会为自己插入一个ID,因为它来自另一个DB,我想保持兼容性,所以这样做了:
mznpcxlj2#
我在我的每个StructuredNode类上创建了一个装饰器,它在初始化时检查节点。
要调用它,只需创建类的示例:
11dmarpk3#
您可能需要以下批处理操作之一:
quhf5bfb4#
我已经创建了自己的查询来做这件事。检查它是否有帮助。
kb5ga3dv5#
您可以使用first_or_none来检查节点是否存在。
示例: