当前位置: 首页 > 网络应用技术

哪个版本的Django对象(2023年最新共享)

时间:2023-03-07 17:25:36 网络应用技术

  指南:本文的首席执行官注释,介绍了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中对象的所有内容。感谢您的时间阅读本网站的内容。我希望能帮助您。更多关于哪个版本不忘记在此网站上找到它。