Нет такого столбца: 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) '''
Спасибо Джон