0
私は多くの例とドキュメントに従ってきましたが、この権利を得ることはできません。モデルを逆転させるために信号を使用するM2M
モデルを更新するたびにElasticsearchインデックスを作成しようとしています。 'autoindex'を使用してもM2Mは記録されません。私はラッパーelasticsearch-py
あるdjango-elasticsearch
(here)を使用しています
に
- 私は
Tag
内の値を変更すると、それはすべてのItems
のインデックスを更新する必要があるです。私が試してみると、モデルによってまだインポートされていないため、タグを見つけることができません。
connect(tag_index, sender=Tag.item.through)
これはどのように正しく達成されますか?
class Tag(models.Model): name = models.CharField(max_length=500, blank=True) taglevel = models.IntegerField(null=True, blank=True) def tag_index(instance, **kwargs): Task.instance.es.do_index() class Item(EsIndexable, models.Model): title = models.CharField(max_length=100, blank=True) tag = models.ManyToManyField('Tag', blank=True) class Elasticsearch(EsIndexable.Elasticsearch): serializer_class = TaskEsSerializer fields = ['title', 'tag'] @receiver(post_save, sender= Task) def index_elastic(instance, **kwargs): instance.es.do_index() m2m_changed.connect(tag_index, sender=Item.tag.through)