首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

django 1.8 官方文档翻译:14-5 信号

Django 提供了一系列内建信号,允许用户代码获得DJango特定操作通知。...所有信号都发送关键字参数,并且可以在任何时候修改这些关键字参数。...这是错误 – 实际上,如果你这么做了,Django会抛出异常。这是因为无论什么时候信号中添加了参数,你接收器都必须能够处理这些新参数。 连接接收器函数 有两种方法可以将一个接收器连接到信号。...你必须提供sender 参数(大多数情况下它是一个类),并且可以提供尽可能多关键字参数。...所以在错误产生情况,不是所有接收器都会获得通知。 send_robust()捕获所有继承自Python Exception类异常,并且确保所有接收器都能得到信号通知。

58610
您找到你想要的搜索结果了吗?
是的
没有找到

基于Django signals 信号作用及用法详解

__()之后被执行 它有两个参数: post_init(sender, instance) sender:同上,创建实例模型类 instance:创建实例 3)pre_save() django.db.models.signals.pre_save...() djang.db.models.post_save 在model执行完save方法后被调用 6个参数 post_save(sender,instance,created,raw,using...p.toppings.add(t) 这样,对应上面的参数分别如下: sender:描述ManyToManyField中间类,即Pizza.toppings.through instance:被更新多对多关系实例...处理完HTTP请求时发送 3)got_request_exception() django.core.signals.got_request_exception 在处理HTTP请求过程中遇到错误时发送...”) 如上,所有的接收函数必须要包含sender和关键字参数两个参数

2K20

Django之QuerySet详解

annotate()每个参数都是一个annotation,它将添加到返回QuerySet每个对象中。 关键字参数指定Annotation将使用关键字作为Annotation 别名。...匿名参数别名将基于聚合函数名称和模型字段生成。 只有引用单个字段聚合表达式才可以使用匿名参数。 其它所有形式都必须用关键字参数。...' 且不包含双下划线关键字参数开始。...每个参数指定返回字典中将要包含值。 使用关键字参数指定聚合将使用关键字参数名称作为Annotation 名称。 匿名参数名称将基于聚合函数名称和模型字段生成。...复杂聚合不可以使用匿名参数,必须指定一个关键字参数作为别名。

2.3K20

django 1.8 官方文档翻译:2-1-1 模型语法

,所以要使用 verbose_name 关键字参数才能指定自述名: poll = models.ForeignKey(Poll, verbose_name="the related poll") sites...按照上面的方式,在Pizza 表单中将允许用户选择不同Toppings。 另见 完整示例参见多对多关系模型示例。 ManyToManyField 字段还接受别的参数,在模型字段参考中有详细介绍。...zip_code = models.ForeignKey(ZipCode) 字段命名限制 Django 对字段命名只有两个限制: 字段名称不能是Python 保留关键字,因为这将导致一个Python...例如(参见save() 中关于它接受参数文档): from django.db import models class Blog(models.Model): name = models.CharField...Django 未来将一直会扩展内建模型方法功能并添加新参数。如果在你方法定义中使用*args, **kwargs,将保证你代码自动支持这些新参数

4.9K20

django 1.8 官方文档翻译: 2-1-1 模型语法(初稿)

还有一些适用于所有字段可选通用参数,这些参数在 参考(reference) 中有详细定义,这里我们只简单介绍一些最常用: null 如果为 True, Django 在数据库中会将空值(empty...model 类,所以要使用 verbose_name 关键字参数才能指定自述名: poll = models.ForeignKey(Poll, verbose_name="the related poll...zip_code = models.ForeignKey(ZipCode) 字段命名限制 Django 对字段命名只有两个限制: 字段名不可以是 Python 保留字,否则会导致 Python 语法错误...然而如果将它做为其他 model 基类,那么该类字段就会被添加到子类中。抽象基类和子类如果含有同名字段,就会导致错误(Django 将抛出异常)。...这取决于你如何使用 ‘%(class)s’ 来构造你反向名称。如果你没有这样做,Django 就会在验证 model (或运行 syncdb) 时抛出错误

3.1K30

基于Django OneToOneField和ForeignKey区别详解

,若进行删除操作则抛出错误 SET_NULL 将ForeignKey置为空,这只在null选项为True时候产生作用 SET_DEFAULT 设为默认值(default value),此默认值已预先对...', on_delete=models.CASCADE) class Meta: abstract = True ForeignKey还有如下参数可以选择: 参数 功能 limit_choices_to...toppings = models.ManyToManyField(Topping) 在示例代码中,Pizza类toppings字段由ManyToManyField与Toppings关联,我们可以由生活常识得出一片披萨上面会有很多种类佐料...ManyToManyField类有两个经常使用参数:through和through_fields,通过这两个参数可以十分方便地建立中间项关联,如示例代码所示: from django.db import...ManyToManyField还有以下参数可以选择: 参数 功能 related_name 同ForeignKey,可以指定关联类在本类中名称 related_query_name 同ForeignKey

2.3K20

【说站】python传递实参方法

python传递实参方法 说明 1、Python允许函数从调用语句中收集任意数量实际参数。 2、在形参名前加一个星号*,表示创建一个名为形参空列表,以存储任意数量实参。...实例 # 传递任意数量实参 #形参名 *toppings 中 星号 让Python创建一个名为 toppings 空元组,并将收到所有值封装到元组中。...def make_pizza(size, *toppings): # 若是接受不同类型实参,必须在函数定义中将接纳任意数量形参放在最后面。                                  ...# Python 先匹配位置实参和关键字实参,再将余下实参收集到最后一个形参中。     ...'''概述要制作比萨'''     print(f"\nMaking a {size}-inch pizza with the following toppings:")     for topping

53730

django 1.8 官方文档翻译: 2-2-1 执行查询

将会在你添加错误类型对象时抛出异常。...字段筛选条件 字段筛选条件就是 SQL 语句中 WHERE 从句。就是 Django QuerySet filter(), exclude() 和 get() 方法中关键字参数。...Python 允许函式接受任意多 name-value 形式参数,并在运行时才确定name和value值。详情请参阅官方Python教程中 关键字参数(Keyword Arguments)。...查询函式所有参数(Q 关系和关键字参数) 都是 “AND” 关系。但是,如果参数中有 Q 对象,它必须排在所有的关键字参数之前。...你可以设置和获得外键属性。正如你所期望,改变外键行为并不引发数据库操作,直到你调用 save()方法时,才会保存到数据库。

4.3K20

37.Django1.11.6文档

模型作为它第一个参数,任意数量关键字参数作为它第二个参数,它会将这些关键字参数传递给模型管理器中get() 函数。...所有提供给查询函数参数关键字参数或Q 对象)都将"AND”在一起。 但是,如果出现Q 对象,它必须位于所有关键字参数前面。...我们可以获得URL主要信息是负责处理URL视图标识(例如名称)。 必须参与正确URL查找其他信息片段是视图参数类型(位置,关键字)和值。...ModelForm子类可以接受现有的模型实例作为关键字参数instance;如果提供此功能,则save()将更新该实例。 ...此save()方法接受一个可选关键字为commit参数,commit取值为True或者False。 如果commit=False 时save(),那么它将返回一个还没有保存到数据库对象。

24.3K80

当构造方法参数过多时使用builder模式

如果客户端意外地反转了两个这样参数,编译器并不会抱怨,但是程序在运行时会出现错误行为 (条目 51)。...在不一致状态下尝试使用对象可能会导致与包含 bug 代码大相径庭错误,因此很难调试。...而且,在运行时会导致错误,因为编译器无法确保程序员在使用对象之前调用freeze方法。 幸运是,还有第三种选择,它结合了可伸缩构造方法模式安全性和 JavaBean 模式可读性。...它是 Builder 模式[Gamma95] 一种形式。客户端不直接调用所需对象,而是调用构造方法 (或静态工厂),并使用所有必需参数,并获得一个 builder 对象。...> builder) { toppings = builder.toppings.clone(); // See Item 50 } } 请注意,Pizza.Builder是一个带有递归类型参数

93430
领券