Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 以这两种方式迭代查询集有什么区别?_Python_Django_Django Models - Fatal编程技术网

Python 以这两种方式迭代查询集有什么区别?

Python 以这两种方式迭代查询集有什么区别?,python,django,django-models,Python,Django,Django Models,我在使用Django构建我的项目时遇到了这两种方法 一种方法是: users = Users.objects.filter(is_verified=True) for user in users: print user.user.id 第二种方式是: users = Users.objects.filter(is_verified=True) for user in users: print user.id 起初,我认为第一种方法不起作用,但它起作用了,而且比第二种方法慢

我在使用Django构建我的项目时遇到了这两种方法

一种方法是:

users = Users.objects.filter(is_verified=True)

for user in users:
    print user.user.id
第二种方式是:

users = Users.objects.filter(is_verified=True)

for user in users:
    print user.id

起初,我认为第一种方法不起作用,但它起作用了,而且比第二种方法慢得多。

第一种方法是查看单个
用户
对象内部的
用户
属性

基本上第一个是做:

打印用户[x].user.id

第二是做:

打印用户[x].id

其中
x
for
循环中的当前索引

如果
Users
对象中有用户属性,则第一个属性是正确的。否则,您只需要访问单个
用户
对象的
id
属性

第一个场景的
Users
类示例如下:

class Users(object):
  user = User()
class Users(object):
  id = 0
第二个senario的
Users
类示例如下:

class Users(object):
  user = User()
class Users(object):
  id = 0

我认为可能发生的情况是,当访问
Users
对象上的
user
属性时,它可能再次查询数据库。如果可以包含
用户
类定义,则更容易理解根本问题。

第一个问题是查看单个
用户
对象内部的
用户
属性

基本上第一个是做:

打印用户[x].user.id

第二是做:

打印用户[x].id

其中
x
for
循环中的当前索引

如果
Users
对象中有用户属性,则第一个属性是正确的。否则,您只需要访问单个
用户
对象的
id
属性

第一个场景的
Users
类示例如下:

class Users(object):
  user = User()
class Users(object):
  id = 0
第二个senario的
Users
类示例如下:

class Users(object):
  user = User()
class Users(object):
  id = 0

我认为可能发生的情况是,当访问
Users
对象上的
user
属性时,它可能再次查询数据库。如果可以包含
用户
类定义,则更容易理解根本问题。

首先访问用户的用户id

您的
User
表中有
User
字段,您正在访问一个_User.User.id


第二次访问
用户
表的
id
字段

第一次访问用户的用户id

您的
User
表中有
User
字段,您正在访问一个_User.User.id

第二次访问
User
表的
id
字段