2011-08-02 7 views
0

私はdjango-notification(https://github.com/jtauber/django-notification.git)を使用していますが、初心者のために少し書類があります。Django通知監視モデル(製品の結果を見る)

検索時に検索結果のない検索結果(商品リストのある検索結果ページ)をユーザーに表示させたいと考えています。検索に一致するレコードが追加された場合は、ユーザーに通知する必要があります。

'observe'の使用方法に関するオンラインの説明が見つかりません。検索結果に表示されるレコードを監視するために使用する必要があると思いますか?おそらく、最初はオブジェクトを含まないフィルタ結果の出現を待つシグナルが必要なので、これは間違ったアプローチ(Django通知を使用して)です...

(このプロジェクトは、このようなことのためのテンプレートを提供するために、Pinax)


ように私は、私はおそらく、クロンジョブとして

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

を評価する必要があると?あなたがDjangoの信号を使用するように見えます

答えて

1

(参照: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) 
+0

の作成を見たいとしましょうinfo-ためのおかげでちょうど(check_if_the_new_product_matches_searches_here)を懸念誰かがnew_productを追加するたびに実行する高価なクエリです。私は、new_product機能がすべてのユーザに利用可能であると説明しておきます。どうもありがとう。 – null

+0

@adamセロリを使用して処理を延期し、高価なクエリが実行される前に応答と*を返すことができます。参照:http://celeryproject.org/ – Jiaaro

関連する問題