Значение исключения: нет такого столбца: noticia_tb.id

#python #django #sqlite #scrapy

Вопрос:

Я создал приложение для очистки с помощью scrapy, чтобы удалить новости со страницы, я поместил его для создания базы данных sqlite, а затем я создал api django, чтобы использовать эту базу данных и сделать ссылку доступной в json, однако при загрузке приложения из следующей ошибки:

Операционная ошибка в /новости/ такой колонки нет: noticia_tb.id

Итак, я открыл файл базы данных и заметил, что идентификатор не был сгенерирован, как мне сгенерировать этот идентификатор или использовать его без него?

следуйте за мной moldels.py

 class NoticiaTb(models.Model):
    title = models.TextField(blank=True, null=True)
    subtitulo = models.TextField(blank=True, null=True)
    url = models.TextField(blank=True, null=True)
    data = models.TextField(blank=True, null=True)
    image_url = models.TextField(blank=True, null=True)

    class Meta:
        managed = False
        db_table = 'noticia_tb'
 

следуйте по конвейеру проекта scrapy

 class ApinoticiaPipeline(object):

    def __init__(self):
        self.create_connection()
        self.create_table()

    def create_connection(self):
        self.conn = sqlite3.connect("myapinoticia.db")
        self.curr = self.conn.cursor()

    def create_table(self):
        self.curr.execute("""DROP TABLE IF EXISTS noticia_tb""")        
        self.conn.execute("""create table noticia_tb(
       
    title text, 
    subtitulo text,
    url text,
    data text,
    image_url text
)""")

    def process_item(self, item, spider):
        self.store_db(item)       
        return item
    
    def store_db(self, item):    
        self.curr.execute("""insert into noticia_tb values (?,?,?,?,?)""",(str(item['title'][0]),str(item['subtitulo'][0]),str(item['url'][0]),str(item['data'][0]),str(item['image_url'][0])))              
        self.conn.commit()
 

Комментарии:

1. Я не понимаю, id поле всегда создается по умолчанию Django, если вы сами не указываете столбец, который является первичным ключом. Вы уверены, что бежали makemigrations правильно?

2. У меня есть, дело в том, что база данных n сгенерирована django и да, scrapy, я поместил ее в django, чтобы использовать эту существующую базу данных