django2.0变动数据库设置外键报错
2024-08-31 06:18:07
1、报错TypeError: __init__() missing 1 required positional argument: 'on_delete'
django2.0以后创建数据库外键的时候必须要加on_delete参数,参数具体含义:
CASCADE
:这就是默认的选项,级联删除,你无需显性指定它。PROTECT
: 保护模式,如果采用该选项,删除的时候,会抛出ProtectedError
错误。SET_NULL
: 置空模式,删除的时候,外键字段被设置为空,前提就是blank=True, null=True
,定义该字段的时候,允许为空。SET_DEFAULT
: 置默认值,删除的时候,外键字段设置为默认值,所以定义外键的时候注意加上一个默认值。SET()
: 自定义一个值,该值当然只能是对应的实体了
一般的设置为 on_delete=models.CASCADE 就可以了
补充说明:关于SET()
的使用
**官方案例**
def get_sentinel_user():
return get_user_model().objects.get_or_create(username='deleted')[0] class MyModel(models.Model):
user = models.ForeignKey(
settings.AUTH_USER_MODEL,
on_delete=models.SET(get_sentinel_user),
)
2、django中verbose_name是什么意思?和label有什么区别?
label
是这个Field如果在form表单验证中会显示在模板的lable、而verbose_name
在form中不会显示、只是作为一种说明而已
最新文章
- wireshark 相关提示
- JAVA 构造代码块
- css虚线和css双实线
- 自定义 IP 地址
- 通过bin-log对mysql进行数据恢复
- springMVC源码分析--SimpleUrlHandlerMapping(四)
- 【微信小程序】
- leetcode — convert-sorted-list-to-binary-search-tree
- cnetos7设置中文显示及中文输入法
- Raid卡介绍
- jmeter 启动jmeter-server.bat远程调用报错: java.io.FileNotFoundException: rmi_keystore.jks (系统找不到指定的文件。)
- 多进程和mongo的配合使用
- linux 系统中用root切换到普通用户时显示的异常如-bash-4.1$
- muduo 的 shutdown() 没有直接关闭 TCP 连接?
- Python学习---抽屉框架分析[点赞功能/文件上传分析]0317
- 用C#实现对MSSqlServer数据库的增删改查---Server层(WaterLevelRecordServer.cs、DeviceRecordServer.cs)
- vue.js 源代码学习笔记 ----- observe
- SpringCloud---消息总线---Spring Cloud Bus
- jQuery当中的事件(第六章ppt)
- Linux常用网络带宽监控工具(转)
热门文章
- noi 求分数序列和 x
- [CF1101F]Trucks and Cities:分治优化决策单调性
- Module not found: Error: Can't resolve ' vue-resource'
- .Net MVC JsonResult在IE下返回值变成下载文件问题
- Spark 2.1.1 源码编译
- 【Python】学习笔记十二:模块
- VS2010护眼界面(护眼绿)
- oracle 查看并行sql语句的并行数量和如何开并行
- Spring MVC集成Swagger2.0
- delphi xe2 64位嵌入汇编问题 https://bbs.csdn.net/topics/390333981