2016-08-18 3 views
0

get_or_createのgetでフィールドを更新する簡単な方法はありますか? クラスItemCategoryがあり、新しいエントリを作成するか、すでに作成されたエントリを取得してフィールド(update_date)を更新したいとします。 私は何をしている:これは私のループでしばらく働くpeewee get_or_createして保存:エラーバインディング

item,created= ItemCategory.get_or_create(cat=cat_id,item=item_id) 
if created == True: 
    print "created" 
else: 
    item.update_date = datetime.now 
    item.somethingelse = 'aaa' 
    item.save() 

。しかし、50〜100の後に/それはクラッシュの作成を取得:

peewee.InterfaceError: Error binding parameter 4 - probably unsupported type.

は、たぶん私は(アップサート使用する必要があります)、私が試したが、働いて何かを得ることができませんでした。それは単なるフィールドの代わりに行全体を置き換えるので、おそらく最良の解決策ではありません。私はピーウィー好き

は、それは非常に使いやすいと高速ですが、私は多くの完全な例を見つけることができない、それは残念だ

答えて

0

初心者ミス

item.update_date = datetime.now() 

私はこれは100%を確認していません唯一の答えです。私は自分のコードを何度も変更して、何か他のものでもあるかもしれません。 create_or_updateについての私の質問については

は、私はこれをやった:

try: 
    Item.create(...) 
except IntegrityError: 
    Item.update(...) 

ピーウィーは、誰もcreate_or_updateを求めない理由、私は疑問に思う、本当に素晴らしいです。