【问题标题】:how to resolve error in Django models.py?如何解决 Django models.py 中的错误?
【发布时间】:2020-02-08 14:37:38
【问题描述】:

我是 Django 新手,试图在 virtualenv 中创建一个 Django 项目来学习,但在 python manage.py make migrations 上出现以下错误:

Traceback(最近一次调用最后一次): 文件“manage.py”,第 21 行,在 主()
文件“manage.py”,第 17 行,在 main execute_from_command_line(sys.argv)
文件
“/home/suraj/Documents/my_projects/django_project/venv/lib/python3.6/site-packages/django/core/management/init.py”,第 381 行,在execute_from_command_line 实用程序.execute()
文件
“/home/suraj/Documents/my_projects/django_project/venv/lib/python3.6/site-packages/django/core/management/init.py”,第 357 行,在执行 django.setup()
文件
“/home/suraj/Documents/my_projects/django_project/venv/lib/python3.6/site-packages/django/init.py”,第 24 行,在设置中 apps.populate(settings.INSTALLED_APPS)
文件
“/home/suraj/Documents/my_projects/django_project/venv/lib/python3.6/site-packages/django/apps/registry.py”,第 114 行,在填充 app_config.import_models()
文件
“/home/suraj/Documents/my_projects/django_project/venv/lib/python3.6/site-packages/django/apps/config.py”,第 211 行,在 import_models self.models_module = import_module(models_module_name)
文件
“/home/suraj/Documents/my_projects/django_project/venv/lib/python3.6/importlib/init.py”,第 126 行,在 import_module
return _bootstrap._gcd_import(name[level:], package, level) _gcd_import 中的文件“”,第 994 行 _find_and_load 中的文件“”,第 971 行 文件“”,第 955 行,在 _find_and_load_unlocked
_load_unlocked 中的文件“”,第 665 行 文件“”,第 678 行,在 exec_module 中 文件“”,第 219 行,在 _call_with_frames_removed
文件
“/home/suraj/Documents/my_projects/django_project/web_board/boards/models.py”,第 11 行,在
类主题(models.Model):
文件
“/home/suraj/Documents/my_projects/django_project/web_board/boards/models.py”,第 14 行,在主题
board = models.ForeignKey(Board, related_name='topics')
类型错误:init() 缺少 1 个必需的位置参数:'on_delete'

【问题讨论】:

  • on_delete 在 Django 2.0+ 中是必需的,以前它默认为 CASCADE。较早的教程可能缺少该信息

标签: python django python-3.x django-migrations


【解决方案1】:

看起来您正在使用外键创建模型。

当你创建这样的模型时,你必须指定当外键表中的记录被删除时会发生什么。

只需使用模型中该列的on_delete 参数添加删除记录时应该发生的情况,您应该会很好。

board = models.ForeignKey(Board, related_name='topics', on_delete=**what_you_want_to_do_when_parent_record_gets_deleted**)

what does on_delete do on Django models?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-11
    • 2021-01-08
    • 2019-09-22
    • 2021-08-04
    • 2021-06-14
    • 2021-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多