在使用django操作model的时候经常会用到根据id来查找某个对象,我们在官网上看到的是使用get(pk=1)这个方法,比如说:
Student.objects.get(pk=1)
但是我们还可以通过用另外一个方法得到相同的结果:
Students.objects.get(id=1)
还有一种情况能够说明这一点,那就是在StudentAdmin里面有一个字段叫做list_display,相当于table里面的th,
我们可以这样写
list_display = ['pk', 'name‘, 'age']
当但也可以写成:
list_display = ['id', 'question', 'pub_date']
结果显示都是它的主键的值
那么这里面pk和id有什么不同和相同之处呢?
其实大部分情况来说pk和id是一样的,我们知道pk代表primary key的缩写,也就是任何model中都有的主键,那么id呢,大部分时候也是model的主键,所以在这个时候我们可以认为pk和id是完全一样的。
但是有时候不一样?什么时候?是的,你猜到了,当model的主键不是id的时候,这种情况虽然少,但是django为我们想到了,我们来看一下
class Student(model.Model): my_id = models.AutoField(primary_key=True) name = models.Charfield(max_length=32)
这个时候,你可以用pk来找,因为django它知道Student的主键是my_id 但是,如果你用id去找的话,那就对不起,查无此人。
相关推荐
本文主要介绍的是关于Django objects.all()、objects.get()与objects.filter()直接区别的相关内容,文中介绍的非常详细,需要的朋友们下面来一起看看详细的介绍: 示例代码 ret=UserInfo.objects.all() all返回的是...
Django 中request.get和request.post的区别 POST和GET差异: POST和GET是HTTP协议定义的与服务器交互的方法。GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。另外,还有PUT和DELETE方法。 POST和GET都...
今天小编就为大家分享一篇使用django的objects.filter()方法匹配多个关键字的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
django框架.docx
djangoproject.com 项目是 www.djangoproject.com 网站的源码。
DjangoWeb.zip
使用 Docker 部署 Django web 应用.zip使用 Docker 部署 Django web 应用.zip使用 Docker 部署 Django web 应用.zip使用 Docker 部署 Django web 应用.zip使用 Docker 部署 Django web 应用.zip使用 Docker 部署 ...
get返回的是Model对象,类型为列表,说明使用get方法会直接执行sql语句获取数据 filter和all类似,但支持更强大的查询功能 all、filter和get得到的数据返回类型是不一样的 all、filter返回数据类型是QuerySet、get...
djangoproject.com, djangoproject.com的源代码 djangoproject.com 源代码 要在本地运行,请执行以下操作:创建 python 3.5 virtualenv安装依赖项:pip install -r requirements/dev.txtnpm
TutorialsPoint Django 教程.epub
中文版django book.pdf" 中文版django book.pdf"中文版django book.pdf
Eclipse+Django调试.docEclipse+Django调试.docEclipse+Django调试.doc
我如何使用 Django + Vue.js 快速构建项目.pdf ,我如何使用 Django + Vue.js 快速构建项目.pdf
Lightweight.Django.2014.11.pdf
跟apache整合后的django settings.py
自Django 创建以来,各种各样的开源社区已经构建了很多Web 框架,比如JavaScript 社区创建的Angular.js 、Ember.js 和Backbone.js 之类面向前端的Web 框架,它们是现代Web 开发中的先驱。Django 从哪里入手来适应...
Django基础.pdf
The Django Book.pdf