Ade*_*ina -1 python django django-models
我正在尝试运行我的代码,但收到此错误:
File "C:\Users\JOSHUA\Documents\ypgforum\myproject\boards\models.py", line 13, in <module>
class Topic(models.Model):
File "C:\Users\JOSHUA\Documents\ypgforum\myproject\boards\models.py", line 16, in Topic
board = models.ForeignKey(Board, related_name='topics')
TypeError: __init__() missing 1 required positional argument: 'on_delete'
Run Code Online (Sandbox Code Playgroud)
这是它指向的 models.py:
class Topic(models.Model):
subject = models.CharField(max_length=255)
last_updated = models.DateTimeField(auto_now_add=True)
board = models.ForeignKey(Board, related_name='topics')
starter = models.ForeignKey(User, related_name='topics')
last_updated = models.DateTimeField(auto_now_add=True)
Run Code Online (Sandbox Code Playgroud)
您忘记指定外键指向的对象被删除时会发生什么;这是on_delete参数。请参阅ForeignKey文档:
多对一的关系。需要两个位置参数:与模型相关的类和选项
on_delete。
当删除ForeignKey引用的对象时,Django将模拟参数指定的SQL约束的行为
on_delete。
从可用选项中选择一项(models.CASCADE、models.PROTECT、models.SET_NULL、models.SET_DEFAULT或models.SET())models.DO_NOTHING
从 Django 2.0 开始,该参数是必需的。在以前的 Django 版本中,该参数是可选的,默认为models.CASCADE.
如果您习惯了旧的行为,只需将其设置为旧的默认值即可:
board = models.ForeignKey(Board, models.CASCADE, related_name='topics')
starter = models.ForeignKey(User, models.CASCADE, related_name='topics')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8060 次 |
| 最近记录: |