私はElasticsearchのフィールドstudent_id
として設定しようとするクラスを持っています。私はelasticsearch-dsl docsから永続的な例を参照しています。_id
from elasticsearch_dsl import DocType, String
ELASTICSEARCH_INDEX = 'student_index'
class StudentDoc(DocType):
'''
Define mapping for Student type
'''
student_id = String(required=True)
name = String(null_value='')
class Meta:
# id = student_id
index = ELASTICSEARCH_INDEX
id
セットインで結んだのですMeta
が、うまくいきません。
オーバーライドsave
メソッドとして解決策を取得し、これを達成します
def save(self, **kwargs):
'''
Override to set metadata id
'''
self.meta.id = self.student_id
return super(StudentDoc, self).save(**kwargs)
このオブジェクトを次のように作成しています
>>> a = StudentDoc(student_id=1, tags=['test'])
>>> a.save()
Meta
オーバーライドメソッドなしで設定する直接的な方法はありますsave
か?