![](/img/trans.png)
[英]How to change the behaviour of unique true in django model?
[英]Confusing neomodels `unique=True` behaviour
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=True
和required=False
。 如果一個屬性被設置為唯一的,那么它也會被自動視為需要(大概是因為否則,你可能有兩個或多個具有 null 屬性的節點,這不會是唯一的)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.