Django通知观察模型(观察产品结果)

时间:2011-08-02 11:41:30

标签: django signals django-signals django-notification

我一直在使用django-notification(https://github.com/jtauber/django-notification.git),但文档对初学者来说有点简短。

我希望能够让用户密切关注在搜索时没有结果的搜索(包含产品详情的结果页面)。然后,如果添加了与搜索匹配的记录,则应通知用户。

我找不到任何关于如何使用'观察'的在线解释,我认为这是我需要用来观察出现的记录(在搜索结果中)?也许,这是错误的方法(使用django-notification),因为我需要一个信号来等待最初不包含任何对象的过滤结果的出现......

(该项目太开发了,无法考虑像Pinax这样的选项为这样的事情提供模板)


我想我需要评估

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

也许作为一项计时工作?

1 个答案:

答案 0 :(得分:1)

看起来你想使用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)