2017-02-03 2 views
0

私はこのカラムを持っていますinformation_release_counter。もう1つはconfirmedです。「now()」が特定の日時である場合、行を変更します。 Django

私が更新し、私のようにinformation_release_counter

serializer.confirmed

datetime.datetime.now() - serializer_id.information_release_counter == 0が "真" であったとき

serializer_id.information_release_counter = datetime.datetime.now() + datetime.timedelta(hours=48) 

私はそれをしたいと思います。しかし、それは自動的に起こるはずです。

「ウォッチャー」などがあるかどうかわかりません。

私はcelery tasketaを読んでいましたが、私はそれをどのように使うことができるか分かりません。ただ、テストのために

set_confirmed_death(use, countdown=15) 

、それは動作しません。これで

@celery.task 
def set_confirmed_death(user_object): 
    user_object.death_confirmed = True 
    user_object.save() 

::)

私はこれをしようとしています。何が間違っているのか分からない。私はこのエラーを取得する:

TypeError: set_confirmed_death() got an unexpected keyword argument 'countdown'

答えて

0

私はついに答えを見つけました。

私はちょうどセロリよりも多くのものを必要と知らなかった...

私はこのチュートリアルに従っ: First Steps

だから私が働いをインストールしました。

stack post

をそして最後に、私はこのチュートリアルではDjangoのために適合:

その後、私はこの記事でいくつかの質問を明確に

Celery in Django

ので、私のviews.py中:

serializer_id.information_release_counter = datetime.datetime.now() + datetime.timedelta(seconds=48) 
set_confirmed_death.apply_async([serializer_id.id], eta=serializer_id.information_release_counter) 

datetime.datetime.nowでエラーが発生しましたが、「now()」と正しく動作します。

彼らは(私自身のset_confirmed_death機能で、もちろん)のチュートリアルで説明したとおりに

そしてinit.pycelery.pytasks.pyは、それが誰かを助けることができると思います。

0

あなたはdatetime.datetime.now()datetime.datetime.nowを使用するinformation_release_counterの値を変更する必要はありません。後者は、現在の日時を常に取得します。これは、あなたが望むものではないようです(ゴールポストは常に他の列の値に対して変更されるため)。

次に、問題のattrsを持つオブジェクトのPKを受け入れるセラータスクを作成します。タスクを呼び出すときは、information_release_counterの値をcountdownとして秒単位で渡します。

タスクはオブジェクトをルックアップし、confirmedの値を変更して保存できます。

+0

あなたの答えをありがとう! '' 'serializer_id.information_release_counter = datetime.datetime.now()+ datetime.timedelta(hours = 48)' ''は私が望むものを作る:)。たとえば、私は19:58にやったし、今は '' '" 2017-02-05 19:58:17.950403 + 01 "' ''だから、うまくいきます。しかし、私は気に入っています。2月5日19時58分に '' serializer_id.confirmed = True''が発生しました。 –

+0

'now()'は常に新しい日付時刻を与えるので、 –

+0

ok :)だから、 '' 'now()' ''を '' '' '' 'に変更してから? :) –

関連する問題