【问题标题】:Peewee creates mutiple records (on flask app)Pee Wee 创建多个记录(在烧瓶应用程序上)
【发布时间】:2014-08-10 15:23:59
【问题描述】:

我有一个简单的声明,

Points.create(user=bt.user,match=m,value=2,datecreated=date.today())

我希望它创建一个记录,但有时它会创建多个记录。不知道发生了什么。

完整代码如下:

from utils.models import *
import sys
m = Match.select().where(Match.id == sys.argv[1]).get()
r = Result.select().where(Result.match == m).get()
w= r.winner
print(m.id,m.team1.name,m.team2.name,m.mdate,m.mtime)
if Bet.select().where(Bet.match == m).exists():
           for bt in Bet.select().where(Bet.match == m):
               print("User:::"+str(bt.user.name))
               if w.id == bt.bet.id:
                   print("+2")
                   Points.create(user=bt.user,match=m,value=2,datecreated=date.today())
               else:
                   print("-2")
                   Points.create(user=bt.user,match=m,value=-2,datecreated=date.today())


This is the end result:
(u'Tony George', 2)
(u'AJ', 2)
(u'Tony George', 2)
(u'AJ', 2)
(u'Aravind S', 2)
(u'Iyyam', 2)
(u'Rajakumar', 2)
(u'Leo', 2)

如您所见,它似乎为 Tony George 创建了 2 条记录。这是任意发生的,有时针对一个用户,有时针对另一个用户。

【问题讨论】:

    标签: python flask peewee flask-peewee


    【解决方案1】:

    退房:

    简短的回答是您应该使用第一个查询:

    for bt in list(Bet.select().where(Bet.match == m)):
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-25
      • 2019-09-14
      • 1970-01-01
      • 2012-07-12
      • 1970-01-01
      相关资源
      最近更新 更多