你能解释这个 python django makemigrations 错误吗?
can you explain this python django makemigrations error?
我删除了我的数据库,当我尝试使用新数据库迁移时出现此错误。
回溯
File "D:\work\Student Management\student_management_system\student_management_app\urls.py", line 3, in <module>
from . import views, AdminViews, StaffViews, StudentViews
File "D:\work\Student Management\student_management_system\student_management_app\views.py", line 7, in <module>
from .AdminViews import *
File "D:\work\Student Management\student_management_system\student_management_app\AdminViews.py", line 4, in <module>
from .forms import *
File "D:\work\Student Management\student_management_system\student_management_app\forms.py", line 8, in <module>
class AddStudentForm(forms.Form):
File "D:\work\Student Management\student_management_system\student_management_app\forms.py", line 19, in AddStudentForm
for course in courses:
File "D:\work\Student Management\myvenv\lib\site-packages\django\db\models\query.py", line 280, in __iter__
self._fetch_all()
File "D:\work\Student Management\myvenv\lib\site-packages\django\db\models\query.py", line 1324, in _fetch_all
self._result_cache = list(self._iterable_class(self))
File "D:\work\Student Management\myvenv\lib\site-packages\django\db\models\query.py", line 51, in __iter__
results = compiler.execute_sql(chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size)
File "D:\work\Student Management\myvenv\lib\site-packages\django\db\models\sql\compiler.py", line 1175, in execute_sql
cursor.execute(sql, params)
File "D:\work\Student Management\myvenv\lib\site-packages\django\db\backends\utils.py", line 98, in execute
return super().execute(sql, params)
File "D:\work\Student Management\myvenv\lib\site-packages\django\db\backends\utils.py", line 66, in execute
return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
File "D:\work\Student Management\myvenv\lib\site-packages\django\db\backends\utils.py", line 75, in _execute_with_wrappers
return executor(sql, params, many, context)
File "D:\work\Student Management\myvenv\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "D:\work\Student Management\myvenv\lib\site-packages\django\db\utils.py", line 90, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File "D:\work\Student Management\myvenv\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
django.db.utils.ProgrammingError: relation "student_management_app_courses" does not exist
LINE 1: ...student_management_app_courses"."updated_at" FROM "student_m...
我不明白错误是什么。
在文件“student_management_app/forms.py”中的 AddStudentForm
形式中,您正在初始化应用程序时执行查询。这会阻止迁移正常工作,因为迁移过程必须将您的应用程序设置为 运行,并且您不能(不应该)运行 在创建任何表之前进行查询。
很可能您正在为表单字段创建选择,您需要删除此查询并将其替换为传递给未执行的查询集的 ModelChoiceField
我删除了我的数据库,当我尝试使用新数据库迁移时出现此错误。
回溯
File "D:\work\Student Management\student_management_system\student_management_app\urls.py", line 3, in <module>
from . import views, AdminViews, StaffViews, StudentViews
File "D:\work\Student Management\student_management_system\student_management_app\views.py", line 7, in <module>
from .AdminViews import *
File "D:\work\Student Management\student_management_system\student_management_app\AdminViews.py", line 4, in <module>
from .forms import *
File "D:\work\Student Management\student_management_system\student_management_app\forms.py", line 8, in <module>
class AddStudentForm(forms.Form):
File "D:\work\Student Management\student_management_system\student_management_app\forms.py", line 19, in AddStudentForm
for course in courses:
File "D:\work\Student Management\myvenv\lib\site-packages\django\db\models\query.py", line 280, in __iter__
self._fetch_all()
File "D:\work\Student Management\myvenv\lib\site-packages\django\db\models\query.py", line 1324, in _fetch_all
self._result_cache = list(self._iterable_class(self))
File "D:\work\Student Management\myvenv\lib\site-packages\django\db\models\query.py", line 51, in __iter__
results = compiler.execute_sql(chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size)
File "D:\work\Student Management\myvenv\lib\site-packages\django\db\models\sql\compiler.py", line 1175, in execute_sql
cursor.execute(sql, params)
File "D:\work\Student Management\myvenv\lib\site-packages\django\db\backends\utils.py", line 98, in execute
return super().execute(sql, params)
File "D:\work\Student Management\myvenv\lib\site-packages\django\db\backends\utils.py", line 66, in execute
return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
File "D:\work\Student Management\myvenv\lib\site-packages\django\db\backends\utils.py", line 75, in _execute_with_wrappers
return executor(sql, params, many, context)
File "D:\work\Student Management\myvenv\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
File "D:\work\Student Management\myvenv\lib\site-packages\django\db\utils.py", line 90, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value
File "D:\work\Student Management\myvenv\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
return self.cursor.execute(sql, params)
django.db.utils.ProgrammingError: relation "student_management_app_courses" does not exist
LINE 1: ...student_management_app_courses"."updated_at" FROM "student_m...
我不明白错误是什么。
在文件“student_management_app/forms.py”中的 AddStudentForm
形式中,您正在初始化应用程序时执行查询。这会阻止迁移正常工作,因为迁移过程必须将您的应用程序设置为 运行,并且您不能(不应该)运行 在创建任何表之前进行查询。
很可能您正在为表单字段创建选择,您需要删除此查询并将其替换为传递给未执行的查询集的 ModelChoiceField