django orm 报错

开发过程会遇到数据库这种问题:

user_type = models.ForeignKey(UserType)
TypeError: __init__() missing 1 required positional argument: 'on_delete'

根据报错结果可以知道是缺少一个关键字,然后解释一下:

on_delete指的是通过ForeignKey连接起来的对象被删除后,当前字段怎么变化。

常见的选项有:

  models.CASCADE,对就对象删除后,包含ForeignKey的字段也会被删除

  models.PROTECT,删除时会引起ProtectedError

  models.SET_NULL,注意只有当当前字段设置null设置为True才有效,此情况会将ForeignKey字段设置为null

  models.SET_DEFAULT ,同样,当前字段设置了default才有效,此情况会将ForeignKey 字段设置为default 值

  moels.SET,此时需要指定set的值

  models.DO_NOTHING ,什么也不做

因此,需要在你的关系表添加上这个关键字就可以了

原文地址:https://www.cnblogs.com/ArkhamKnight/p/9704084.html