Уведомление Django о модели наблюдения (отслеживание результатов продукта) - PullRequest
0 голосов
/ 02 августа 2011

Я использую django-уведомление (https://github.com/jtauber/django-notification.git), но документация для новичка немного краткая.

Я хочу, чтобы пользователи могли следить за поиском (страница результатов ссписки продуктов), которые не имеют результатов на момент поиска. Затем, если добавляется запись, соответствующая запросу, пользователь должен быть уведомлен.

Я не могу найти онлайн-объяснение того, как использовать "наблюдать', что я думаю, что мне нужно использовать, чтобы следить за появлением записей (в результатах поиска)? Возможно, это неправильный подход (с использованием django-уведомлений), так как мне нужен сигнал для ожидания появления результата фильтракоторый изначально не содержал бы объектов ...

(проект слишком развит, чтобы рассмотреть вариант, подобный Pinax, для предоставления шаблона для подобных вещей)


Полагаю, мне нужно оценить

f=Products.objects.filter({search_request_args})
if f:
   notification.send([request.user], "product_match", {"from_user": settings.FROM_DEFAULT})

Возможно, как хронологическую работу?

1 Ответ

1 голос
/ 02 августа 2011

Похоже, вы хотите использовать сигналы django (см .: https://docs.djangoproject.com/en/dev/topics/signals/)

Допустим, вы хотите наблюдать за созданием Product объектов

from django.db.models.signals import post_save
from my_app.models import Product

def new_product(sender, instance, created, **kwargs):
    # short-circuit the function if it isn't a new product (it's 
    # being updated not created)
    if not created: return

    # note: instance is the newly saved Product object

    if (check_if_the_new_product_matches_searches_here):
        notification.send(...)

post_save.connect(new_product, sender=Product)
...