I have code as below
from elasticsearch_dsl.connections import connections
from elasticsearch_dsl import DocType, String, Boolean
class BaseDoc(DocType):
id = String(required=True, index='not_analyzed')
name = String(required=True)
deleted = Boolean(required=True, null_value=True)
class Meta:
index = 'test'
class MyDoc(BaseDoc):
pass
connections.create_connection(hosts=['localhost:9200'])
MyDoc.init()
doc = MyDoc(id='test', name='test', deleted=False)
doc.save(refresh=True)
I get error
Traceback (most recent call last):
File "/tmp/test.py", line 31, in <module>
doc.save(refresh=True)
File "/usr/lib/python2.7/site-packages/elasticsearch_dsl/document.py", line 240, in save
self.full_clean()
File "/usr/lib/python2.7/site-packages/elasticsearch_dsl/utils.py", line 453, in full_clean
self.clean_fields()
File "/usr/lib/python2.7/site-packages/elasticsearch_dsl/utils.py", line 447, in clean_fields
raise ValidationException(errors)
elasticsearch_dsl.exceptions.ValidationException: {'deleted': [ValidationException('Value required for this field.',)]}
if you see, I am passing delete=False
in code when I try to create the doc object.
When its not taking deleted
value?
If i remove deleted
doc = MyDoc(id='test', name='test')
doc.save(refresh=True)
Then also it gives same error, seems deleted is not taken care by elasticsearch dsl.