首页 > 解决方案 > Django模型导入问题

问题描述

我是 Django 的新手。我一直在尝试将我的 model.py 导入自定义管理命令文件,但它告诉我:

Unable to import 'Educationa_Organization_Management_System.Subjects.models

当我尝试从导入中删除文件夹名称时,我仍然收到此错误消息:

Unable to import 'Subjects.models

这是我在自定义命令文件中的代码:

from django.core.management.base import BaseCommand
from Educationa_Organization_Management_System.Subjects.models import Subject


class Command(BaseCommand):
    def add_arguments(self, parser):
        parser.add_argument("Subject_name")
        parser.add_argument("Instructor_name")
        parser.add_argument("prerequisites", action="store_true")
        parser.add_argument("Assistant_name")
        parser.add_argument("Course_description")
        parser.add_argument("Validation_date")
        parser.add_argument("SubjectNumberOfChapters")
        parser.add_argument("numberOfLecturesPerWeek")
        parser.add_argument("numberOfSectionsPerWeek")
        parser.add_argument("Subject_FullGrade")

    def handle(self, *args, **options):
        subject = Subject(
            name=options['name'],
            Instructor_name=options['Instructor_name'],
            prerequisites=options['prerequisites'],
            Assistant_name=options['Assistant_name'],
            Course_description=options['Course_description'],
            Validation_date=options['Validation_date'],
            SubjectNumberOfChapters=options['SubjectNumberOfChapters'],
            numberOfLecturesPerWeek=options['numberOfLecturesPerWeek'],
            numberOfSectionsPerWeek=options['numberOfSectionsPerWeek'],
            Subject_FullGrade=options['Subject_FullGrade'],
        )
        subject.save()
        self.stdout.write(self.style.SUCCESS(
            "Subject has been successfully added to the database"))

这是我的model.py文件内容:

from django.db import models


class Subject(models.Model):
    Subject_name = models.CharField(max_length=50, blank=False)
    Instructor_name = models.CharField(max_length=50, blank=False)
    prerequisites = models.BooleanField()
    Assistant_name = models.CharField(max_length=50, blank=False)
    Course_description = models.TextField()
    Validation_date = models.DateTimeField()
    SubjectNumberOfChapters = models.IntegerField(blank=False, null=False)
    numberOfLecturesPerWeek = models.IntegerField()
    numberOfSectionsPerWeek = models.IntegerField()
    Subject_FullGrade = models.IntegerField()

最后,这是我的文件夹:

在此处输入图像描述

是的,该应用程序也在该INSTALLED_APPS部分的setting.py 文件中。

标签: pythondjangodatabase

解决方案


好吧,经过 2 天的漫长搜索,我发现问题是在命令文件夹中我没有​​该__init__.py文件。

当我添加它时,一切都很完美。

这是最终的目录树:

|   db.sqlite3
|   manage.py
|   Subjects.xlsx
|   
+---Educationa_Organization_Management_System
|   |   asgi.py
|   |   settings.py
|   |   urls.py
|   |   wsgi.py
|   |   __init__.py
|   |   
|   \---__pycache__
|           settings.cpython-39.pyc
|           urls.cpython-39.pyc
|           wsgi.cpython-39.pyc
|           __init__.cpython-39.pyc
|           
\---Subjects
    |   admin.py
    |   apps.py
    |   models.py
    |   Subjects.csv
    |   tests.py
    |   views.py
    |   __init__.py
    |   
    +---management
    |   |   __init__.py
    |   |   
    |   +---commands
    |   |   |   Student_database_Upload.py
    |   |   |   __init__.py
    |   |   |   
    |   |   \---__pycache__
    |   |           Database_migration.cpython-39.pyc
    |   |           __init__.cpython-39.pyc
    |   |           
    |   \---__pycache__
    |           __init__.cpython-39.pyc
    |           
    +---migrations
    |   |   0001_initial.py
    |   |   0002_auto_20210125_2052.py
    |   |   0003_auto_20210125_2255.py
    |   |   0004_auto_20210126_1944.py
    |   |   0005_auto_20210126_1946.py
    |   |   __init__.py
    |   |   
    |   \---__pycache__
    |           0001_initial.cpython-39.pyc
    |           0002_auto_20210125_2052.cpython-39.pyc
    |           0003_auto_20210125_2255.cpython-39.pyc
    |           0004_auto_20210126_1944.cpython-39.pyc
    |           0005_auto_20210126_1946.cpython-39.pyc
    |           __init__.cpython-39.pyc
    |           
    \---__pycache__
            admin.cpython-39.pyc
            models.cpython-39.pyc
            __init__.cpython-39.pyc
            

推荐阅读