Проблема с движком Django SQLAlchemy - данные не передаются в базу данных при использовании Pandas

Моя задача - взять данные из excel и загрузить их в базу данных. Я использую SQLAlchemy (с Pandas df) для этого, но у меня не получается. Когда я пытаюсь использовать ORM bulk_create, он работает, что наводит меня на мысль, что Django сторона вещей (например, шаблоны, url, представления, соединения моделей) работает нормально, и может быть какая-то проблема в определении движка Alchemy?

Мне нужна ваша помощь для отладки и решения этой проблемы. Детали моего кода приведены ниже. Пожалуйста, обратите внимание, что я не получаю никаких ошибок в терминале vscode, просто когда я нажимаю на кнопку Add/ replace, данные не передаются. Буду признателен за помощь... большое спасибо...

Детали движка SQLAlchemy (сохранены в engine.py)

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from django.conf import settings

engine = create_engine('postgresql://' +
                       settings.DATABASES['default']['USER'] + ':' +
                       settings.DATABASES['default']['PASSWORD'] + '@' +
                       settings.DATABASES['default']['HOST'] + ':' +
                       str(settings.DATABASES['default']['PORT']) + '/' +
                       settings.DATABASES['default']['NAME'])

Session = sessionmaker(bind=engine)
session = Session()

views.py

from .models import Industry
from .engine import engine, session
import pandas as pd

def industry_import_replace(request):
    df = pd.read_excel('Industry.xlsx')    
    df.to_sql('Industry', engine, if_exists='replace', index=False)    
    return render(request, 'portfolio/partials/imports/industry-import.html',{})

шаблон (html)

<form method="post">
  <div class="row">
    <div class="col col-md-4 col-lg-4">
      <table class="table">
        <thead>
          <tr>
            <th scope="col-md-4 col-lg-4">Imports</th>
            <th scope="col-md-4 col-lg-4">&nbsp;</th>
            <th scope="col-md-4 col-lg-4">&nbsp;</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <th scope="col-md-4 col-lg-4">Industry</th>
            <td>
              <button type="submit" name="action" value="replace" class="btn btn-danger"
                hx-post="{% url 'portfolio:industry-import-replace' %}" hx-target="#imports">Add/ Replace</button>
            </td>
            <td>
              <button type="submit" name="action" value="append" class="btn btn-success"
                hx-post="{% url 'portfolio:industry-import-append' %}" hx-target="#imports">Append</button>
            </td>
          </tr>
        </tbody>
        <div id="imports"></div>
    </div>

данные файла Excel

Расположены в самом верху; без заголовков строк и т.д.. ID название_отрасли Инд1 Инд2 Инд3

Файл отраслевой модели

class Industry(models.Model):
    industry_name = models.CharField(max_length=100, unique=True)

    class Meta:
        verbose_name_plural = 'Industry'

    def __str__(self):
        return self.industry_name
Вернуться на верх