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

django 1.8 官方文档翻译: 2-3-1 模型实例参考

当你调用save() 时,Django 使用下面的算法: 如果对象的主键属性为一个求值为True 的值(例如,非None 值或非空字符串),Django 将执行UPDATE。...__unicode__() 方法且没有定义__str__() 方法,Django 将自动提供一个 __str__(),它调用__unicode__() 并转换结果为一个UTF-8 编码的字符串。...下面是一个建议的开发实践:只定义__unicode__() 并让Django 在需要时负责字符串的转换。 __str__ Model....最明显的是在Django 的Admin 站点显示一个对象和在模板中插入对象的值的时候。 所以,你应该始终让__str__() 方法返回模型的一个友好的、人类可读的形式。...如果实例的主键还没有值,将引发一个TypeError(否则,__hash__ 方法在实例保存的前后将返回不同的值,而改变一个实例的__hash__ 值在Python 中是禁止的)。

2.2K10

Django JSONField SQL注入漏洞(CVE-2019-14234)分析与影响

在Django中也支持了Postgresql的数据类型: JSONField ArrayField HStoreField 这三种数据类型因为都是非标量,且都能用JSON来表示,我下文就用JSONField...).all() JSONField的强大让我们能灵活地在关系型数据库与非关系型数据库间轻松地切换,因此在我们的很多业务中都会使用到这个功能。...0x02 SQL注入漏洞何来 那么,是什么问题导致了这个漏洞?...编写过自定义Field的同学应该知道,Django中有以下两个概念: 如果你不知道,可以参考一下这篇文档:https://docs.djangoproject.com/en/2.2/ref/models...get_transform函数应该返回一个可执行对象,你可以理解为工厂函数,执行这个工厂函数,获得一个transform对象。

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

    Django的用户表创建(四)

    :(在django中,根据代码中的类自动生成数据库的表也叫--code first) ORM:Object Relational Mapping(关系对象映射) 类名对应------》数据库中的表名 类属性对应...---------》数据库里的字段 类实例对应---------》数据库表里的一行数据 obj.id obj.name…..类实例对象的属性 也就是说django与数据库的交互被写在了黑盒子里面了,如果我们要用只需要知道输入...,接触过数据库的应该都知道 IntegerField : 整型,映射到数据库中的int类型。...DateField: 日期类型,没有时间。映射到数据库中是date类型, 在使用的时候,可以设置DateField.auto_now每次保存对象时,自动设置该字段为当前时间。...DateTimeField: 日期时间类型。映射到数据库中的是datetime类型, 在使用的时候,传递datetime.datetime()进去。

    2.4K60

    Django 3.1 官网学习路线

    字段还可以有各种可选参数;在本例中,我们将投票的默认值设置为 0。 最后,请注意使用外键定义了关系。这告诉 Django 每个选择都与一个问题相关。...让我们通过编辑问题模型(在 polls/models.py 文件中)并在问题和选择中添加其他的__str__()方法来解决这个 Question 和 Choice from django.db import...不同的模型字段类型(DateTimeField、CharField)对应于适当的 HTML 输入小部件。每种类型的字段都知道如何在 Django 管理中显示自己。...“添加选择”表单如下所示: 在该表单中,“Question”字段是一个选择框,包含数据库中的每个问题。Django 知道一个外键应该在管理中表示为一个框。在我们的例子中,目前只存在一个问题。...默认情况下,为 3 个选项提供足够的字段。” 加载“添加问题”页面,看看是什么样子: 不过有一个小问题。它需要大量的屏幕空间来显示用于输入相关选择对象的所有字段。

    8.9K10

    Django+Vue开发生鲜电商平台之5.使用DRF实现商品列表页和过滤

    但是从代码中可以看到: 通过在新建列表、其元素为单个商品信息组成的字典,一个一个地添加,显得很麻烦,可进行改进; 有些字段不能直接用json.dumps()方法序列化,如datetime,会报错,如商品列表视图修改为如下时...如果报错__str__ returned non-string (type NoneType),可以通过退出登录后台管理或者修改自定义的用户模型的__str__()方法解决,具体可参考https://blog.csdn.net...Django中有Form,也有ModelForm,DRF中也有ModelSerializer,相比于Serializer,它省去了模型所有字段的添加和处理数据方法的实现,serializers.py简化如下...DRF通过提供一个Response类来支持HTTP内容协商,该类允许您根据客户端请求返回可以呈现为多种内容类型的内容。...此时,可以根据字段进行过滤,但是只能精确比配,对于字符串型字段不能模糊匹配,对于数值型字段也不能匹配区间,因此需要自定义filters,新建filters.py如下: import django_filters

    5.6K20

    python+Django+mysql多图,多文件上传(包含admin)

    ,一个为图集 图集对文件存储中需要有一个字段设置为多对多的储存关系 post后获得文件 先对图集实例化,增加其他字段应填写的值,对这个实例存储...button type="submit">提交 注意form表单要填写enctype="multipart/form-data" 文件input类型为...有图单独增加的图片名称是靠增加single字段,并且使用内置方法__str__()得到(为了方便上传后对图片末尾加随机字符串串或者重命名而增加) ?...多文件上传未对名字进行修改,也没有多增加字段,为方便对比多图上传添加部分的显示效果 ———————————————————————————————————————————— ? ?...由于在建立model.py的时候对数据字段类型做了限制,此处应是图片的上传成非图片的文件,就会报错。 其他字段类型也是一样的。这就是django创建admin的好处,不用写增删改查,却都有,也能判断

    3K20

    Django 模型层之多表操作

    一.创建模型 实例: 作者表: 拥有字段:姓名(name),性别(sex),该表与书籍表之间为多对多的关系 作者详情表: 拥有字段:地址(addr),手机号(phone),该表与作者表之间为一对一的关系...__(self): return self.name 注意事项: 1.id字段不写的话会自动添加 2.对于外键字段,Django会在字段名上添加"_id"来创建数据库中的列名 3.外键字段...要做跨关系查询,就使用两个下划线来连接模型(model)间关联字段的名称,知道最终链接到你想要的model为止。...Django提供了以下聚合函数 1.expression 引用模型字段的一个字符串,或者一个query expression 2.output_field 用来表示返回值的model field...7.Min 返回给定字段的最小值 8.Sum 返回给定字段的总和 分组查询:annotate() annotate()为调用QuerySet种每一个对象都生成一个独立的统计值,相当于数据库种的

    1.4K20

    35.Django2.0文档

    第四章 模板  1.标签 (1)if/else {% if %} 标签检查(evaluate)一个变量,如果这个变量为真(即,变量存在,非空,不是布尔值假),系统会 显示在 {% if %} 和 {%...在 MTV 开发模式中:    M:代表模型(Model),即数据存取层。...该层处理与表现相关的决定: 如何在页面或其他类型文档中进行显示。   V:代表视图(View),即业务逻辑层。 该层包含存取模型及调取恰当模板的相关逻辑。 你可以把它看作模型与模板之间的桥梁。  ...其他的一些查找类型有:   icontains(大小写无关的LIKE),startswith和endswith, 还有range 5.获取单个对象 上面的例子中`` filter()`` 函数返回一个记录集...我们只自定义了一项:list_display,它是一个字段名称的元组,用于列表显示。当然,这些字段名称必须是模块中有的。

    11.9K100

    【Python全栈100天学习笔记】Day41 Django深入理解框架

    在MySQL中创建数据库的SQL语句如下所示: create database oa default charset utf8; Django框架本身有自带的数据模型,我们稍后会用到这些模型,为此我们先做一次迁移操作...如果不希望执行反向查询可以将related_name属性设置为'+'或以'+'开头的字符串。...通过“迁移操作”(migrate)来添加模型。 用NoSQL来应对需要降低范式级别的场景。 如果布尔类型可以为空要使用NullBooleanField。 在模型中放置业务逻辑。...通用字段属性 选项 说明 null 数据库中对应的字段是否允许为NULL,默认为False blank 后台模型管理验证数据时,是否允许为NULL,默认为False choices 设定字段的选项,各元组中的第一个值是设置在模型上的值...managed 设置为True时,Django在迁移中创建数据表并在执行flush管理命令时把表移除 order_with_respect_to 标记对象为可排序的 ordering 对象的默认排序 permissions

    2.6K30

    Django 2.1.7 Admin - 编辑页选项

    Django 2.1.7 Admin管理后台文章 Django 2.1.7 Admin管理后台 - 注册模型、自定义显示列表字段 Django 2.1.7 Admin - 列表页选项 参考文献 https...设置返回的模型对象为某个字段 单纯看这个object信息无法知道修改哪个数据的标记页,可以通过管理类的__str__方法来返回某个字段。...# 设置返回主机名 def __str__(self): return self.server_hostname 2)刷新浏览器效果如下图: 编辑页显示关联对象的数据...在一对多的关系中,可以在一端的编辑页面中编辑多端的对象,嵌入多端对象的方式包括表格、块两种。...类型InlineModelAdmin:表示在模型的编辑页面嵌入关联模型的编辑。子类TabularInline:以表格的形式嵌入。子类StackedInline:以块的形式嵌入。

    1.1K30

    可以格式化Python自定义对象的3个魔术方法

    在Python中,下划线用于属性名时具有特殊含义。一种特殊形式是使用两对双下划线,一个在属性名之前,另一个在属性名之后,这被称为特殊方法或魔术方法。...如果返回一个非字符串,就会遇到TypeError,如下图所示。 但是尚未解决的问题是,我们应该为对象返回什么字符串?...虽然我们知道使用__str__方法的情况,但问题是实现这个方法的最佳实践是什么。 >>> class Student: ......Student, John Smith 虽然没有通用的方法来定义__str__方法返回的字符串。但是原则是我们应该返回一些关于实例对象的描述性信息。...总结 在本文中,我们回顾了Python中有关格式化的三个基本的特殊方法。这里是一个简短的回顾。

    46710

    Django项目知识点(三)

    指定这个属性后你会得到一个get_xxx_order()和set_xxx_order()的方法,通过它们你可以设置或者回去排序的对象 ordering 这个字段是告诉Django模型对象返回的记录结果集是按照哪个字段排序的...这个选项是指定,模型的复数形式是什么,比如verbose_name_plural = "学校"如果不指定Django会自动在模型名称后加一个’s’ 字段类型 models.CharField 字符串类型...注意:Django在一个模型中只允许有一个自增字段,并且该字段必须为主键!...   字符串类型(正则表达式邮箱)=varchar 对字符串进行正则表达式验证,使用DJango内置的EmailValidator进行邮箱地址合法性验证。...null 如果是True,Django会在数据库中将此字段的值置为NULL,默认值是False blank 如果为True时django的 Admin 中添加数据时可允许空值,可以不填。

    2.1K30

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

    最低限度的验证需求,它被用在 Django 管理站点和自动生成的表单中。 Django 自带数十种内置的字段类型;完整字段类型列表可以在模型字段参考 中找到。...这些参数在参考中有详细定义,这里我们只简单介绍一些最常用的: null 如果为True,Django 将用NULL 来在数据库中存储空值。...自定义字段类型 如果已有的模型字段都不合适,或者你想用到一些很少见的数据库列类型的优点,你可以创建你自己的字段类型。创建你自己的字段在编写自定义的模型字段中有完整讲述。...当模型实例需要强制转换并显示为普通的字符串时,Python 和Django 将使用这个方法。最明显是在交互式控制台或者管理站点显示一个对象的时候。 将将永远想要定义这个方法;默认的方法几乎没有意义。...查询集始终返回请求的模型 也就是说,没有办法让DJango在查询Person对象时返回MyPerson对象。Person 对象的查询集会返回相同类型的对象。

    5.3K20

    Python 最常见的 120 道面试题解析

    Python 中的局部变量和全局变量是什么? python 是否区分大小写? Python 中的类型转换是什么? Python 中有哪些内置类型? python 中是否需要缩进?...python 中的生成器是什么? 你如何把字符串的第一个字母大写? 如何将字符串转换为全小写? 如何在 python 中注释多行? Python 中的文档字符串是什么? 目的是什么,不是和运营商?...在 Python 中为数值数据集编写排序算法。 查看下面的代码,记下 A0,A1,...的最终值。 Python 库面试问题 解释 Flask 是什么及其好处? Django 比 Flask 好吗?...Web Scraping - Python 面试问题 如何使用我已经知道的 URL 地址本地保存图像? 你需要从 IMDb 前 250 电影页面中删除数据。它应该只有字段电影名称,年份和评级。...检查给定数字n是否为2或0的幂 计算将A转换为B所需的位数 在重复元素数组中查找两个非重复元素 找到具有相同设置位数的下一个较大和下一个较小的数字 95.给定n个项目的重量和值,将这些物品放入容量为W的背包中

    6.9K20
    领券