Почему 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
.
У кого-нибудь есть идея, как это исправить?