post_save async
This commit is contained in:
parent
e94dd03875
commit
bdf5c77f03
|
|
@ -1,7 +1,6 @@
|
||||||
"""Search indexes app signals."""
|
"""Search indexes app signals."""
|
||||||
from django.db.models.signals import post_save
|
from django.db.models.signals import post_save
|
||||||
from django.dispatch import receiver
|
from django.dispatch import receiver
|
||||||
from django_elasticsearch_dsl.registries import registry
|
|
||||||
|
|
||||||
|
|
||||||
@receiver(post_save)
|
@receiver(post_save)
|
||||||
|
|
@ -31,24 +30,26 @@ def update_document(sender, **kwargs):
|
||||||
@receiver(post_save)
|
@receiver(post_save)
|
||||||
def update_news(sender, **kwargs):
|
def update_news(sender, **kwargs):
|
||||||
from news.models import News
|
from news.models import News
|
||||||
|
from search_indexes.tasks import es_update
|
||||||
app_label = sender._meta.app_label
|
app_label = sender._meta.app_label
|
||||||
model_name = sender._meta.model_name
|
model_name = sender._meta.model_name
|
||||||
instance = kwargs['instance']
|
instance = kwargs['instance']
|
||||||
app_label_model_name_to_filter = {
|
app_label_model_name_to_filter = {
|
||||||
('location', 'country'): 'country',
|
('location', 'country'): 'country',
|
||||||
# ('news', 'newstype'): 'news_type',
|
('news', 'newstype'): 'news_type',
|
||||||
('tag', 'tag'): 'tags',
|
('tag', 'tag'): 'tags',
|
||||||
}
|
}
|
||||||
filter_name = app_label_model_name_to_filter.get((app_label, model_name))
|
filter_name = app_label_model_name_to_filter.get((app_label, model_name))
|
||||||
if filter_name:
|
if filter_name:
|
||||||
qs = News.objects.filter(**{filter_name: instance})
|
qs = News.objects.filter(**{filter_name: instance})
|
||||||
for product in qs:
|
for item in qs:
|
||||||
registry.update(product)
|
es_update(item)
|
||||||
|
|
||||||
|
|
||||||
@receiver(post_save)
|
@receiver(post_save)
|
||||||
def update_product(sender, **kwargs):
|
def update_product(sender, **kwargs):
|
||||||
from product.models import Product
|
from product.models import Product
|
||||||
|
from search_indexes.tasks import es_update
|
||||||
app_label = sender._meta.app_label
|
app_label = sender._meta.app_label
|
||||||
model_name = sender._meta.model_name
|
model_name = sender._meta.model_name
|
||||||
instance = kwargs['instance']
|
instance = kwargs['instance']
|
||||||
|
|
@ -65,4 +66,4 @@ def update_product(sender, **kwargs):
|
||||||
if filter_name:
|
if filter_name:
|
||||||
qs = Product.objects.filter(**{filter_name: instance})
|
qs = Product.objects.filter(**{filter_name: instance})
|
||||||
for product in qs:
|
for product in qs:
|
||||||
registry.update(product)
|
es_update(product)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user