码迷,mamicode.com
首页 > 其他好文 > 详细

dgango报错收集

时间:2018-05-31 00:33:32      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:img   ror   hide   错误   lan   delete   lang   cas   默认   

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报错收集

标签:img   ror   hide   错误   lan   delete   lang   cas   默认   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!