Нет такого столбца: dashboard_book.id django

Я пытаюсь сохранить данные из pandas DataFrame в базу данных SQLite в проекте django, но постоянно получаю ошибку "no such column: dashboard_book.id".

На данный момент у меня есть простой файл Excel с одним столбцом "title" со строкой внутри. Я хочу импортировать его в DataFrame, а затем сохранить в Django model. Это может показаться излишеством, но это только начало, поскольку я хочу развить это с помощью некоторых скриптов автоматизации, которые у меня уже есть.

Простая модель в models.py:

class Book(models.Model):
    title = models.CharField(max_length=500)

Регистрация администратора в admin.py:

@admin.register(Book)
class BookAdmin(admin.ModelAdmin):
    list_display = ['title']

Затем попытка сохранить его в базу данных с помощью dataframe.to_sql() этот вызов находится в отдельном файле с другой бизнес-логикой:

data_table = pd.read_excel(setting.import_directory + "/book_table.xlsx")
data_table_dataframe = pd.DataFrame(data_table,)
engine = create_engine('sqlite://db.sqlite3')
data_table_dataframe.to_sql("book", con=engine, if_exists='replace', index=True)

При попытке доступа к модели на панели администратора возникает ошибка и данные в модель не сохраняются.

Я перепробовал все различные параметры в вызове to_sql() и проверил файлы, чтобы убедиться, что я ничего не упустил, но я не могу найти, откуда исходит проблема.

Заранее спасибо.

Как посоветовал Джон в комментарии - это было связано с if_exists='replace'. Измените это на нижеприведенное и все работает.

''' data_table_dataframe.to_sql(name="dashboard_book", con=engine, if_exists='append', index=False, index_label=None, method=None) '''

Спасибо Джон

Вернуться на верх