python - 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 文件中。
解决方案
好吧,经过 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
推荐阅读
- javascript - 错误:您无法渲染
在另一个里面 . 你的应用程序中不应该有多个 - sql - 实体中的字段可以受到多个约束吗?
- node.js - 如果存在,如何更新文档,如果在 mongodb 中不存在,如何将其插入?
- java - 在 build fat jar 中添加 java spark 代码单元测试使 spark 稍后运行失败
- php - PHP 严格标准:静态函数 DatabaseHandler::init
- python - 为什么我不能从 Plotly 写入 /var/www/html/index.html?
- excel - VBA 语法 - 带有 IF 语句的 Vlookup
- excel - 统计个人占据排行榜的条款数
- php - Storage::put() 在 Linux 服务器上不起作用
- github - 如何从 github CLI 或 API 将团队添加到 GitHub Enterprise Org?