我正在 django 開發一個學生管理系統,在制作它的同時我得到了這個
class Dept(models.Model):
id = models.CharField(primary_key='True', max_length=100)
name = models.CharField(max_length=200)
def __str__(self):
return self.name
class Course(models.Model):
dept = models.ForeignKey(Dept, on_delete=models.CASCADE)
id = models.CharField(primary_key='True', max_length=50)
name = models.CharField(max_length=50)
shortname = models.CharField(max_length=50, default='X')
def __str__(self):
return self.name
在進行遷移時,我通過什么方式得到這個錯誤我能做到這一點,我該如何解決這個錯誤
(studentmanagementsystem) C:\Users\harsh\dev\student management\student_management>python manage.py makemigrations
Traceback (most recent call last):
File "manage.py", line 15, in <module>
execute_from_command_line(sys.argv)
File "C:\Users\harsh\anaconda3\lib\site-packages\django\core\management\__init__.py", line 381, in execute_from_command_line
utility.execute()
File "C:\Users\harsh\anaconda3\lib\site-packages\django\core\management\__init__.py", line 357, in execute
django.setup()
File "C:\Users\harsh\anaconda3\lib\site-packages\django\__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "C:\Users\harsh\anaconda3\lib\site-packages\django\apps\registry.py", line 112, in populate
app_config.import_models()
File "C:\Users\harsh\anaconda3\lib\site-packages\django\apps\config.py", line 198, in import_models
self.models_module = import_module(models_module_name)
File "C:\Users\harsh\anaconda3\lib\importlib\__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 843, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "C:\Users\harsh\dev\student management\student_management\student_app\models.py", line 10, in <module>
class Dept(models.Model):
File "C:\Users\harsh\dev\student management\student_management\student_app\models.py", line 18, in Dept
class Course(models.Model):
File "C:\Users\harsh\dev\student management\student_management\student_app\models.py", line 19, in Course
dept = models.ForeignKey(Dept, on_delete=models.CASCADE)
NameError: name 'Dept' is not defined
(studentmanagementsystem) C:\Users\harsh\dev\student management\student_management>
uj5u.com熱心網友回復:
老實說,我不知道您為什么會收到此錯誤,因為您在示例中顯示的內容是正確的。您收到此錯誤的唯一時間(至少據我所知)是:
兩個模型定義在不同的檔案中,匯入關系模型有問題。
用于創建關系的模型在關系之后定義。在您的示例中,這意味著在
Dept模型之后定義Course模型。
您可以使用 將模型作為字串匯入APP_NAME.MODEL_NAME,這樣可以避免這種情況,特別是我描述的第二種情況。
class Course(models.Model):
# Assuming your model resides in an app called 'student_app'
dept = models.ForeignKey('student_app.Dept', on_delete=models.CASCADE)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/434093.html
