Peewee создает несколько записей (в приложении колба)
У меня есть простое утверждение,
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)
Как вы можете видеть, кажется, создается 2 записи для Тони Джорджа. Это происходит произвольно, иногда для одного пользователя, а иногда для другого.
1 ответ
Решение
Проверять, выписываться:
Короткий ответ: вы должны использовать первый запрос:
for bt in list(Bet.select().where(Bet.match == m)):