neomodel.StructuredNode
上的unique
属性的行为让我有点困惑
有人能告诉我解释这个的文件吗?或者让我知道我在误解什么
模型:
class Person(neomodel.StructuredNode):
uuid = neomodel.UniqueIdProperty()
legacy_external_id = neomodel.StringProperty(unique=True, required=False)
不是所有的Person
实例都会有这个“遗留的\u外部\u id”,但是在它存在的地方它需要是唯一的
在我看来,上面的代码似乎符合这个描述
但在实践中,结果是:
In[]: p = Person(legacy_external_id='u12345')
In[]: p.save()
Out[]: < Person: {'uuid': '7d7e5c2224d647e9a87d23b9cb1c4153', 'legacy_external_id': 'u12345'} >
In[]: p = Person(legacy_external_id='u12345')
In[]: p.save()
Out[]: < Person: {'uuid': 'ed7690f8f28b4cf288c35d2130a2e6e4', 'legacy_external_id': 'u12345'} >
In[]: p = Person(legacy_external_id='u12345')
In[]: p.save()
Out[]: < Person: {'uuid': '7393a4b5022d40d8aca002cecac9b124', 'legacy_external_id': 'u12345'} >
只是愉快地增殖节点(没有错误或警告)不是我所期望的行为
我可以写我自己的验证,但在我继续之前,我有兴趣了解我的错误理解
谢谢您的建议
首先,它应该是
unique_index=True
,而不是unique=True
另外,Neomodel的当前版本不支持
unique_index=True
和required=False
的组合。如果一个属性被设置为唯一的,那么它也会被自动视为必需的(可能是因为否则,您可能会有两个或多个节点具有null属性,这将不是唯一的)相关问题 更多 >
编程相关推荐