【问题标题】:peewee get_or_create and then save: error bindingpeewee get_or_create 然后保存:错误绑定
【发布时间】:2016-12-25 18:32:20
【问题描述】:

有没有一种简单的方法可以在 get_or_create 的 get 上更新字段? 我有一个 ItemCategory 类,我想创建一个新条目或获取已创建的条目并更新一个字段 (update_date)。 我要做的是:

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 get/create 之后它崩溃了:

peewee.InterfaceError: Error binding parameter 4 - 可能是不受支持的类型。

也许我应该使用 upsert(),我试过了,但没有任何效果。此外,它可能不是最好的解决方案,因为它会替换整行而不是一个字段。

我喜欢peewee,它使用起来非常简单快捷,但是我找不到很多完整的例子,很遗憾

【问题讨论】:

    标签: peewee flask-peewee


    【解决方案1】:

    新手错误

    item.update_date = datetime.now()
    

    我不是 100% 确定这是唯一的答案。我修改了我的代码很多次,它可能也是别的东西。

    关于我关于 create_or_update 的问题,我已经这样做了:

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

    peewee 真的很棒,我想知道为什么没有人要求 create_or_update。

    【讨论】:

    • 对我来说也是同样的错误。我忘了在 now 函数后面加上括号。
    猜你喜欢
    • 1970-01-01
    • 2014-08-31
    • 1970-01-01
    • 2012-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多