Задать вопрос
@Sibastian

Ошибка cursor.execute(sql, params or ()) peewee.IntegrityError: NOT NULL constraint failed: searchmodel.url?

Пишу бота для уведомления, только изучаю базы данных, помогите пофиксить ошибку

#main
import logging
import asyncio
from aiogram import Bot, Dispatcher, executor, types, utils
from aiogram.types import ParseMode
from db import prcces_search_model, init_db, find_id_search

logging.basicConfig(level=logging.INFO)

URL = 'https://www.computeruniverse.net/ru/c/apparatnoe-obespechenie-i-komponenty/videokarty-pci-express'
TOKEN = ''

bot = Bot(token=TOKEN, parse_mode=ParseMode.HTML)
dp = Dispatcher(bot)


@dp.message_handler(commands='list')
async def sent_list(message: types.Message):
    message_text = 'Строка поиска {}'.format('123')
    await message.answer(text=message_text)


@dp.message_handler(commands='search')
async def send_search(message: types.Message):
    search_models = find_id_search(message.chat.id)
    for search_model in search_models:
        await message.answer(text=search_model.title)


@dp.message_handler()
async def echo(message: types.Message):
    await prcces_search_model(message)


async def scheduled(wait_for, parser):
    while True:
        await asyncio.sleep(wait_for)
        print('parse')
        pass

if name == 'main':
    init_db()
    loop = asyncio.get_event_loop()
    loop.create_task(scheduled(10, None))
    executor.start_polling(dp, skip_updates=True)


#db
from aiogram.types import ParseMode
from aiogram import utils
from peewee import *

db = SqliteDatabase('video.db')


class BaseModel(Model):
    class Meta:
        database = db


class VideoCard(BaseModel):
    title = CharField()
    url = TextField()


class SearchModel(BaseModel):
    title = CharField()
    url = TextField()


def find_all_cards():
    return VideoCard.select()


def find_id_search(chat_id):
    return SearchModel.select().where(SearchModel.chatid == chat_id)


def find_all_search():
    return SearchModel.select()


async def prcces_search_model(message):
    search_exist = True
    try:
        search = SearchModel.select().where(SearchModel.title == message.text).get()
        search.delite.instance()
        await message.answer('Строка поиска удалена'.format(message.text))
        return search_exist
    except DoesNotExist as de:
        search_exist = False

    if not search_exist:
        rec = SearchModel(title=message.text, chatid=message.chat.id)
        rec.save()
        await message.answer('Строка поиска {} добавлена'.format(message.text))
    else:
        await message.answer('Строка поиска {} уже есть!'.format(message.text))
    return search_exist


def init_db():
    db.create_tables([VideoCard, SearchModel])


cursor.execute(sql, params or ())
peewee.IntegrityError: NOT NULL constraint failed: searchmodel.url
  • Вопрос задан
  • 460 просмотров
Подписаться 2 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик
    9 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Python-разработчик + ИИ
    8 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
RoMoN0975
@RoMoN0975
Занимаюсь python около полугода
Вам нужно установить content=some_post_obj при вызове Language.create()
Ответ написан
@Sibastian Автор вопроса
Не могу понять где это изменить!
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Краснодар
от 220 000 до 300 000 ₽
ITK academy Краснодар
от 75 000 ₽
DimaTech Ltd Краснодар
от 140 000 до 140 000 ₽