指南:本文的首席执行官注释,介绍了Django中Django中对象的相关内容。我希望这对每个人都会有所帮助。让我们来看看。
使用__contains
grades.objects.get(gname__contains =“ www”)
网页链接
请注意,必须获得Get并获得记录。如果成绩中有多个Gname字段,则www记录将抛出多个原则的异常,如果没有记录,则会抛弃dosnotexist。
版本3.10.0。
如果Django安装了2.0版,建议安装以下版本,PIP安装djangorestframework == 3.10.0。
django2.0模型外键,一个-to -One on_delete参数
在django2.0之后,定义外键和一个 - 到一个关系时,您需要添加on_delete选项。为了避免两个表中数据不一致的问题,将报告错误:
TypeError:__init __()缺少1所需的位置参数:'on_delete'
例如:
user = models.onetoonefield(用户)
所有者=型号。
需要更改为:
user = models.onetoonefield(用户,on_delete = models.cascade) - 旧版本(models.cascade)是默认值
所有者= models.foreignkey(userProfile,on_delete = models.cascade)-thisyeeels.cascade in Old版本是默认值
参数描述:
on_delete有五个可选值:cascade,protect,set_null,set_default,set()
级联:此值设置是关节删除。
保护:此值设置将报告完整性错误。
set_null:此值设置将把外部键设置为null,但前提是允许将其作为null。
set_default:此值设置将设置外部键的默认值。
set():此值设置,外部值称为一个函数。
在正常情况下,使用级联。
以下是官方文档描述:
外国基金会接受其他论点,这些论点定义了相对工作方式的默认值。
foreferkey.on_delete?
user = models.foreignkey(user,models.set_null,空白= true,null = true,)
自版本1.9:ON_DELETE的弃用将成为Django 2.0中所需的参数。在较旧的版本中,它默认了Tocascade。
在django.db.models中找到了on_delete的帖子值:
级联[来源]?
级联删除。Django模拟SQL约束在删除级联反应上的行为,并删除包含外键的对象。
保护[来源]?
通过提高django.db.db.integrityerror的子类的保护来防止删除引用对象。
set_null [源]?
设置外国钥匙空;如果null isstrue,这是公开的。
set_default [源]?
将外国人设置为我的默认值;必须设置外国键的默认值。
set()[源]?
set(get_sentinel_user)),),),),)
do_nothing [来源]?
不采取行动。如果您的数据库返回执行引用参考完整性,则除非您手动向数据库添加sqlondeconstraint,否则这将导致IntegragrityError
foreferkey.limit_choices_to?
可以使用对象。
对于Exmple:
Staff_member = models.Foreignkey(用户,on_delete = models.cascade,limit_choices_to = {'is_staff':true},),)
导致在themodelformto上提交的相应列表list hasthat hastis_staff = true。这可能对Django管理员有帮助。
例如,与pythondateModule连接以限制按日期prime的选择时,呼叫表单可能会有所帮助。
defLimit_pub_date_choices():return {'pub_date__lte':dateTime.date.utcnow()} limit_to = limit_date_choices_choices_choices
笔记
边缘案件多次,因此您的呼叫可能会宣传几次。
这个Django采访问题或书面测试问题在哪里?请检查Django开发手册。
1. QuerySet是查询集,它是传递给服务器上URL的查询内容。Django缓存查询结果集,即提高查询效率。立即向数据库发布查询命令。仅当您需要使用此QuerySet时。
2.在Django实施的MVC中,对象是m。Django中的模型类别具有对象对象。它是Django中定义的QuerySet类型的对象。它包含模型对象的实例。
3.不,因为获得可能有异常,您可以使用过滤器功能,如下
entry.objects.filter(blog__id__exact = 1)#显示__EXACT
entry.objects.filter(blog__id = 1)#隐藏使用__exact entry.objects.filter(blog__pk = 1)#__pk等于__id __exact
击中记录
对于前提,Models.py已经有一个模型。如果存在ID,则可以使用其他更新字段。如果没有存在,将执行添加操作。
1.Django的objects.get()方法
OmissionRate.Objects.get(ID = ID)
通过get获得的录制对象返回。如果结果不存在或有多个结果,则不能输入if语句,然后直接跳到除外
允许get()参数是多重的,并且需要同时满足之间的关系
2.Django的对象。Filter()方法:
obi = omessionrate.objects.filter(id = id)[0]
通过过滤器返回对象列表,如果结果不存在,它将返回[]
摘要:GET方法只能获取一个对象,并且过滤器方法可以获取多个对象获取方法,该方法无法获得该对象,而过滤器方法则相反。
Django模型通常使用Django的GET和过滤器方法。重要的是要找出两者之间的区别。
为了说明两者之间的差异,定义了2个模型
班级学生(Models.Model):
name = models.chafield('name',max_length = 20,默认='')
age = models.charfield('age',max_length = 20,默认='')
课程(Models.Model):
学生=型号。
1.让我们先谈谈django的获取方法:
1django的GET方法是从数据库中获得匹配结果并返回对象。如果记录不存在,它将报告错误。
例如,如果我的数据库中有记录,则记录的值为“ python”,我使用student = statent.objects.get。
它返回记录对象。您可以通过学生查看。__dict__。它返回字典表格。
而且,如果我使用GET方法检查数据库中不存在的记录,则该程序将报告错误。
例如:student = student.objects.gets.get(name ='pharaoh'),您可以自己运行。
2如果您使用django获取相关表的数据,并且如果密钥表的数据中有2个以上的数据,将会报告错误。
例如,我的学生表中有一个记录:
ID名称年龄
1 Python 24
书籍表:
id student_id
1 1
21
我用
student = student.objects.get(name ='python')
book = book.objects.get(学生)
它还报告了一个错误,因为书籍表有2个记录和学生表。
2.让我们谈谈Django过滤器:
1Django滤波器方法是匹配数据库的结果,并返回对象列表。如果记录不存在,它将返回[]。
例如,我的数据库中有一个记录。如果记录的价值为python,我使用student = student.objects.filter(name ='python'))))))))
返回的学生是对象的列表。可以看出,学生[0]的结果和上述方法返回的雕像是相同的。
结论:以上是首席CTO注释为每个人编写的Django中对象的所有内容。感谢您的时间阅读本网站的内容。我希望能帮助您。更多关于哪个版本不忘记在此网站上找到它。