gpt4 book ai didi

python - 令人困惑的新模型 `unique=True` 行为

转载 作者:行者123 更新时间:2023-12-01 07:26:09 25 4
gpt4 key购买 nike

neomodel.StructuredNode 上的 unique 属性的行为让我有点困惑。

任何人都可以向我指出解释此问题的文档吗?或者让我知道我的误解是什么?

型号:

class Person(neomodel.StructuredNode):

uuid = neomodel.UniqueIdProperty()

legacy_external_id = neomodel.StringProperty(unique=True, required=False)

并非所有 Person 实例都会具有此“legacy_external_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=Truerequired=False 的组合。如果一个属性被设置为唯一,那么它也会自动根据需要进行处理(可能是因为否则,您可能有两个或多个具有 null 属性的节点,这不会是唯一的)。

关于python - 令人困惑的新模型 `unique=True` 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57438389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com