Почему makemigrations в django не работает?

Я хотел вставить в свою базу данных из файла Excel. Поэтому я создал модель в своем models.py файле. models.py

from django.db import models

class Materiau(models.Model):
    designation = models.CharField(max_length=128)
    norme = models.CharField(max_length=128)
    temperature = models.CharField(max_length=128)
    epaisseur = models.CharField(max_length=128)
    symbole = models.CharField(max_length=128)
    rho = models.FloatField(default=0.0)
    E = models.FloatField(default=0.0)
    sigy = models.FloatField(default=0.0)
    Etan = models.FloatField(default=0.0)

    def __str__(self):
        return self.designation

Затем я создал файл Commands :

Путь: my_app/management/commands/update_database.py

from django.core.management.base import BaseCommand
import pandas as pd
from DataMat.models import Materiau
from sqlalchemy import create_engine


class Command(BaseCommand):
    def handle(self, *args, **options):
        df = pd.read_excel('dataframe.xlsx')
        engine = create_engine('sqlite:///db.sqlite3')
        df.to_sql(Materiau._meta.db_table, if_exists='replace', con=engine, index=True)

Затем, когда я запускаю python manage.py update_database, я вижу, что база данных обновляется в моем db.sqlite3 файле.

Но когда я запускаю makemigrations, я получаю сообщение об отсутствии изменений и не могу увидеть свою базу данных в разделе администратора Django. Вот ошибка, которую я получаю от Django: no such column: DataMat_materiau.id Я не понимаю, потому что когда я смотрю в свою базу данных, я вижу индекс, но Django, похоже, не распознает его.

Также в моем update_database.py файле у меня есть это сообщение Access to a protected member _meta of a class.

У кого-нибудь есть идея, как это исправить?

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