Я пытаюсь перенести данные из файла Excel в таблицу многих данных в моей базе данных sqlite3.
model.py
from django.db import models
class Major(models.Model):
name = models.CharField(max_length=30, db_index=True)
class School(models.Model):
name = models.CharField(max_length=50, db_index=True)
majors = models.ManyToManyField(Major)
class professor(models.Model):
ProfessorIDS = models.IntegerField()
ProfessorName = models.CharField(max_length=100)
ProfessorRating = models.DecimalField(decimal_places=2,max_digits=4)
NumberofRatings = models.CharField(max_length=50)
#delete major from the model
school = models.ForeignKey(School , on_delete=models.CASCADE)
major = models.ForeignKey(Major , on_delete=models.CASCADE)
def __str__(self):
return self.ProfessorName
Заполняющий скрипт
# populate.py, school_major_link
import os
import django
from django_xlspopulator.populator import Populator
os.environ.setdefault('DJANGO_SETTINGS_MODULE','blog_project.settings')
django.setup()
from locate.models import Major
pop = Populator('C:/Users/David/Desktop/db_setup/School_Majors.xlsx', school_majors)
pop.populate()
Сообщение об ошибке при попытке запустить скрипт
Traceback (most recent call last):
File "populate_school_major.py", line 9, in <module>
pop = Populator('C:/Users/David/Desktop/db_setup/School_Majors.xlsx', school_majors)
NameError: name 'school_majors' is not defined
Но это имеет смысл, так как этот скрипт ищет имя класса в разделе моделей, а не имя таблицы, поэтому я не слишком уверен, какЯ мог бы заполнить правильную таблицу. Обратите внимание, что у меня уже есть таблица с именем majors, которая уже заполнена с помощью этого сценария, но поскольку django устанавливает множество отношений через переменные, то это отдельный класс, в котором я застрял.
Я попытался использовать заполняющий скрипт выше, но заметил, что это не сработает, так как он находит класс, то есть, в чем хранится таблица базы данных.(В sqlite3 имя таблицы для основных полей manytomanyfield называется school_majors).
Если у кого-нибудь есть какие-либо рекомендации по поводу того, как я могу заполнить базу данных, это было бы здорово.
Изображение ниже базы данныхимя таблицы
Файл Excel ниже
![enter image description here](https://i.stack.imgur.com/MjrSz.jpg)