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

Django学习-第七讲:django 常用字段字段属性,和表关系、操作

和表关系 MySQL,表有两种引擎,一种是InnoDB,另外一种是myisam。如果使用是InnoDB引擎,是支持约束存在使得ORM框架在处理表关系时候异常强大。...因此这里我们首先来介绍下Django使用。 类定义为class ForeignKey(to,on_delete,**options)。...因此底层,Django为Article表添加了一个属性名_id字段(比如author字段名称是author_id),这个字段是一个,记录着对应作者主键。...即只要这条数据引用了那条数据,那么就不能删除外那条数据。 3.SET_NULL:设置为空。如果那条数据被删除了,那么本条数据上就将这个字段设置为空。...如果设置这个选项,前提是要指定这个字段一个默认值。 5.SET():如果那条数据被删除了。那么将会获取SET函数值来作为这个值。

3.9K30

Django基表创建、字段属性简介、脏数据概念、子序列化

如两张表建立了一对一字段A表,那么先往B表写数据就更合理。...假设图书管理系统书、出版社、作者、作者详细信息四张表之间关系如下: """ 表关系 1)Book 和 Publish 一对多:一方 Book 2)Book 和 Author 多对多:查询频率高一方...更合理) """ Django orm中外字段属性详解 在建表之前我们对外字段属性进行了解: 1)related_name在外设置反向查询字段名:正向找字段名,反向找related_name...子序列化 Django序列化功能是:通过跨表查询数据然后对跨表查到数据反序列化。...子序列化使用方法及注意事项: 1)只能在序列化中使用 2)字段名必须是(正向反向都可以)字段,相对于自定义序列化字段,自定义序列化字段不能参与反序列化,而子序列化必须为键名,子序列化字段不写入数据库

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

django开发取消约束实现

# setting设置 'OPTIONS': { "init_command": "SET foreign_key_checks = 0;", } 补充知识:django-给关系传值...''' 两种方法 教室ClassRoom和教室编号ClassNumber 字段django类里名(room_number)在数据库名(room_number_id) '''      # 一.1...(数据库字段名字room_number_id)值,将相对应值直接赋值给该字段      class_number = ClassNumber.object.get("id=1").room_number...‘001'复制给数据库字段 字段django类里名(room_number)在数据库名(room_number_id)      c.save() return HttpResponse("ojbk...s.teacher.remove(x) return HttpResponse("ojbk") 以上这篇django实现在开发取消约束就是小编分享给大家全部内容了,希望能给大家一个参考。

3.6K10

django序列化时使用真实值操作

展示: 一般情况下序列化得到内容只是id: ... { fields: { uat_date: "2015-07-25", statu: "CG", name: "慢赢优化",...方法: 我序列化是Content表,它含有一个关联是Module表,1对多 我要先序列化Module表,然后序列化Content表时候才可以使用到Module真实值 class ModuleManager...,那么要使用到外actual_key,要保证序列化,如下依赖: class Content(models.Model): name = models.CharField(max_length...原生序列化serialize解析 写接口时候,大家都离不开对query结果集序列化 嗯嗯嗯,一般我们都有DRF里面的序列化工具,但是django原生serialize你们有 用过吗??????...,这种方法并不常用 在有特定需要时候,使用这种django原生序列化,还是十分方便

1.8K10

Django获取model字段名和字段verbose_name方式

30) gameid = models.CharField(u'游戏id',max_length=20) def __str__(self): return self.name 获取字段名和...名字 如果在view执行get_model.filed(‘Game_app’,’Game’),那么field_dic结果为: {‘gameid’: ‘\u6e38\u620fid’, ‘id’:...Forms组件 参数配置案例 input样式, 渲染标签加class 错误信息提示 Forms渲染出标签类型 密码型、文本型、邮箱型框 from django.forms import widgets...import widgets '''widgets.类型(加入字典形式标签信息)''' class UserForm(forms.Form): # 模式:普通文本 标签加上:class="form-control...获取model字段名和字段verbose_name方式就是小编分享给大家全部内容了,希望能给大家一个参考。

4.3K10

django admin配置搜索域是一个处理方法

python 2.7.11 django 1.8.4 错误内容:related Field has invalid lookup: icontains 我原来默认认为处理搜索时候,django...,哪些字段显示,在这里 remark 字段将不显示 admin.site.register(Category, CategoryAdmin) [ 说明 ] 使用 Django admin 系统搜索时可能会出现...不应该只是一个model,而该是另一个表明确一个字段。 所以我们需要指定特定字段 “本表字段__所在表需查询字段”。...补充知识:Djangomodel中使用,但在页面上显示是xxx_object?...admin配置搜索域是一个处理方法就是小编分享给大家全部内容了,希望能给大家一个参考。

3.8K20

Django 获取已渲染 HTML 文本

Django,你可以通过多种方式获取已渲染HTML文本。这通常取决于你希望在哪个阶段获取HTML文本。下面就是我实际操作遇到问题,并且通过我日夜奋斗终于找到解决方案。...1、问题背景 Django ,您可能需要将已渲染 HTML 文本存储模板变量,以便在其他模板中使用。例如,您可能有一个主模板,其中包含内容部分和侧边栏。...然后,我们将已渲染 HTML 文本存储 context 字典。最后,我们使用 render() 函数渲染主模板,并传入 context 字典作为参数。...:{% load my_tags %}​{% render_html 'login_form.html' %}3、Django 内置函数Django 内置了一些函数可以帮助您获取已渲染 HTML 文本...这些方法可以帮助我们Django获取已渲染HTML文本,然后我们可以根据需要进行进一步处理或显示。

9310

Django】QuerySet以及Pickle 序列化Django深度运用详解

entry_list = list(Entry.objects.all()) Pickle序列化/缓存。有关拾取QuerySet详细信息,请参阅下一节。本节,从数据库读取结果非常重要。...Django为此提供了count()方法。 Pickle 序列化 QuerySet 如果pickle以序列化QuerySet,这将强制pickle序列化之前将所有结果加载到内存。...表达式可以是简单值、对模型(或任何相关模型)字段引用,或计算与QuerySet对象相关对象聚合表达式(平均值、总和等)。...annotation()每个参数都是一个注释,将添加到返回QuerySet每个对象。 Django提供聚合函数以下聚合函数中进行了描述。...使用关键字参数指定注释使用关键字作为注释别名。匿名参数将根据聚合函数名称和聚合模型字段为其生成别名。只有引用单个字段聚合表达式才能成为匿名参数。其他所有内容都必须是关键字参数。

1.7K10

Django 2.2文档系列】Model on_delete参数用法

场景 我们用DjangoModel时,有时候需要关联。关联时,参数:on_delete几个配置选项到底是干嘛呢,你知道吗? 参数介绍 models.CASCADE 级联删除。...Django会模拟SQL约束行为,删除此条数据时,同事删除外关联对象。...比如:用户有一个关联是用户健康记录表,当用户删除时,配置了这个参数健康记录表中跟这个用户有关数据也会被删除。...当数据被删除时,被关联内容被设置为null。 models.SET_DEFAULT 将值设置为默认值。必须设置有默认值 。...如果后端数据库有强制关联操作,这是容易报错:IntegrityError,除非你在数据库手动添加了SQLON DELETE约束。

1.9K10

Django&DRF重点内容大盘点

' # 中国时间 1.6客户端向服务器传递参数途径 1.6.1通过URL地址传递参数 我们url地址参数,我们如果想要获取可以子应用urls文件中进行设置 还可以像 (?..., verbose_name='图书') # cascade是级联,删除主表数据时连同数据一起删除 1.12.3迁移生成表 1)生成迁移文件 python manage.py makemigrations...,父类基础上,添加一些功能 class 序列化器类名(serializers.Serializer): # 字段名 = serializers.字段名(选项参数) 序列化器对象创建: 序列化器类...(label='图书') 注意:和对象关联对象如果有多个,序列化定义嵌套序列化字段时,需要添加many=True。...]) 注意:此处 about_django为我们自定义校验函数 2)序列化器类定义特定方法 validate_针对特定字段进行补充验证 def validate_btitle

5.9K20

Django数据库查询优化与AJAX

,特点:内部自动连表操作,会将括号内外字段所关联表与当前表自动拼接成一张表,然后将表数据一个一个查询出来封装成一个一个对象。...这样做好处:跨表查询也不需要重复走数据库,减轻数据库压力。select_related()括号内放多个字段,逗号隔开,会将多个字段关联表与当前表拼成一张大表。...,特点:按步骤查询多张表,然后将查询结果封装到对象,给用户感觉好像还是连表操作,括号内支持传多个字段,每放一个字段就会多走一条SQL语句,多查一张表。...choices字段类型获取时候统一句式:get_字段名_display() class User(models.Model): username = models.CharField(max_length...2.对JSON数据进行序列化。 3.Django后端针对json格式数据不会做任何处理,只是将数据原封不动放在了request.body,我们需要手动对其进行反序列化处理。

2.3K20

django restframework serializer 增加自定义字段操作

使用django restframework serializer 序列化django定义model时,有时候我们需要额外在serializer增加一些model没有的字段。...假设现在有一个Animal模型,其中有name, type, country字段,country为。我们序列化Animal时,需要额外增加countryarea信息。...它通过调用它所连接序列化方法来获得它值。它可用于将任何类型数据添加到对象序列化表示。...由 method_name 参数引用序列化方法应该接受一个参数(除了 self),这是要序列化对象。它应该返回你想要包含在对象序列化表示任何内容。...:我们提交表单数据存在于多表(因为表中含有多对多字段),如何验证所有字段,并保存完整数据到各表

3.4K40

重点内容回顾-DRF

重点内容回顾-DRF 1. on_delete on_delete是定义模型类中外一个选项。 on_delete选项指明是主表删除数据时候,对于引用表数据如何处理。...django.db.models包含了可选常量,常用有三种: a.CASCADE级联,删除主表数据时候,连同删除外数据。这个就有点狠了,按需求慎用。...c.SET_NULL设置为 NULL,代表是主表删除数据时候,将关联表数据设置为NULL。仅仅在该字段null=True,允许为null时可用。...2. related_name related_name是定义模型类时,一个选项。它功能下面慢慢给大家分析一下。...,validators=[about_django]) b.序列化定义一个方法 validate_,来对 字段进行验证。

2.4K20

DRF多对多ManytoMany字段更新和添加

orderId 是自动生成UUID订单区域是,下单人也是,菜品orderMenu是一个多对多字段(其实通过我查到方法说都是字段就可以实现但是个人觉得菜品和订单应该是多对多会比较好理解...['orderMenu'] = [] # 此时实例对象是OrderCent,传入实例对象获取orderMenu字段输入many = True 表示多个再使用.data序列化出来...查找表传入查找字段并用data序列话出来 reason = OrderCenterThoughSerializer(instance.ordercenterthough_set.get...将获取id实例 传入序列化再把需要更新字段传入data obj_serializer = OrderCenterThoughSerializer(instance=obj...,时候又发现了代码几个bug1、可以更新不是订单人菜品2、更新时候只能更新已经生成菜品内容,因为无法为订单添加新菜品,这个涉及到中间表对应关系已经确定了。

68420

Django REST 框架详解 04 | 序列化与反序列化及二者整合

1.视图 2.路由 3.接口测试 一、序列化 1.步骤 model s.py,定义表与字段,及表关系 serializes.py 序列化与反序列化 views.py 写 get,post 等操作...import models # 基表 # 提供公用字段,而不创建表 from django.contrib.auth.models import User class BaseModel(models.Model...# 注意:调用时有加载顺序,PublishModelSerializer >> PublishModelSerializer # 这里通过 book publish ,提数据...def validate(self, attrs): # 同一出版社不能出版同一本书 publish = attrs.get('publish') # 这里已经变成对象...三、序列化与反序列整合 从数据安全性和健壮性来考虑,所有的自定义字段不能与 model 字段相同 因为序列化是将字段作为 Dict,而反序列化会将字段作为 Object 1.视图 views.py

95610
领券