首页 > 其他 > 详细

dgango报错收集

时间:2018-05-30 23:51:19      阅读:232      评论:0      收藏:0      [点我收藏+]

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()的使用

**官方案例**
技术分享图片
1 def get_sentinel_user():
2     return get_user_model().objects.get_or_create(username=deleted)[0]
3 
4 class MyModel(models.Model):
5     user = models.ForeignKey(
6         settings.AUTH_USER_MODEL,
7         on_delete=models.SET(get_sentinel_user),
8     )
View Code

 2、django中verbose_name是什么意思?和label有什么区别?

   label是这个Field如果在form表单验证中会显示在模板的lable、而verbose_name在form中不会显示、只是作为一种说明而已

 

dgango报错收集

原文:https://www.cnblogs.com/qiangayz/p/9113937.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!