【问题标题】:Can't syncdb because CASCADE() missing arguments无法同步数据库,因为 CASCADE() 缺少参数
【发布时间】:2019-02-20 16:08:14
【问题描述】:

我第一次测试 Django 以创建我自己的待办事项列表。 到目前为止一切正常,直到我使用

同步到我的 sqlite3 数据库
python manage.py syncdb

到目前为止,我已经设法调试了所有错误。我似乎无法调试的错误是

TypeError: CASCADE() 缺少 4 个必需的位置参数:“collector”、“field”、“sub_objs”和“using”

这是型号代码:

class Item(models.Model):
  worktasks = models.CharField(max_length=250)
  focus = models.CharField(max_length=250)
  #...
  todo_list = models.ForeignKey('Todo', on_delete=models.CASCADE())

def __str__(self):
    return self.worktasks + '-' + self.lessons

我尝试在 CASCADE 之后删除括号“()”,从而导致输出

未知命令:'syncdb'

我正在研究 Pycharm - Python 3.7 版

【问题讨论】:

标签: python django python-3.7


【解决方案1】:

您删除括号的修复是正确的,但这只是问题的一半。后半部分是您尝试使用不存在的命令。 syncdb 不再出现在新的 Django 中(它在 Django 1.9 中被删除)。取而代之的是,您应该使用迁移系统。看看this documentation page

【讨论】:

  • 感谢您的回复 :) 当我尝试 migrate 时,我收到相同的错误消息
  • 您还应该在CASCADE 之后删除(),就像您在上面所做的那样。
猜你喜欢
  • 1970-01-01
  • 2017-04-14
  • 2014-06-06
  • 1970-01-01
  • 2023-03-30
  • 2019-08-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多