Сохраняется только часть "c", хоть я и делаю точно тоже самое, часть "u" меняется, но в базе оно не сохраняется. Когда ставлю .save(force_insert) выдаёт ошибку:
UNIQUE constraint failed: Users.id
Код(с разных файлов разные блоки):
# main.py
# self.event.text.lower()[15:] - id пользователя
# self.db - база данных юзера
c = utils.getClanById(self.db.userId)
c.users = c.users.replace(f"{self.event.text.lower()[15:]}/", "")
c.save()
u = utils.getUserById(int(self.event.text.lower()[15:]))
u.user_clan = ""
u.save()
# utils.py
import time
from models import *
def getUserById(user_id):
try:
return User().get(User.userId == user_id)
except:
User(
userId=user_id,
name="",
lastTimeUsedBonus=time.time() - 86400,
money=0,
GB=0,
crowns=0,
place=1000,
user_clan="",
clan_invites=""
).save()
return User().get(vk_id=user_id)
def getClanById(user_id, buy=False):
user_id = int(user_id)
try:
return Clan().get(Clan.owner_id == user_id)
except:
if buy:
Clan(
owner_id=user_id,
name="",
idd=0,
users="",
base=1,
rating=0,
coffers=0,
wins=0,
loses=0
).save()
return Clan().get(Clan.owner_id == user_id)
# models.py
from peewee import *
dbu = SqliteDatabase('users and clans.db')
class User(Model):
class Meta:
database = dbu
db_table = 'Users'
userId = IntegerField()
name = TextField()
lastTimeUsedBonus = TimeField()
money = IntegerField()
GB = IntegerField()
crowns = IntegerField()
user_clan = TextField()
clan_invites = TextField()
class Clan(Model):
class Meta:
database = dbu
db_table = 'Clans'
owner_id = IntegerField()
name = TextField()
idd = IntegerField()
users = TextField()
base = IntegerField()
rating = IntegerField()
coffers = IntegerField()
wins = IntegerField()
loses = IntegerField()
if __name__ == '__main__':
dbu.create_tables([Clan, User])