我正在使用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
起初我认为第一种方式不会起作用但是它起作用并且比第二种方式慢得多。
答案 0 :(得分:1)
第一个是查看单个user
对象内的Users
属性。
基本上第一个是:
print users[x].user.id
第二个是:
print users[x].id
其中x
是for
循环中的当前索引。
如果Users
对象中有用户属性,则第一个是正确的。否则,您只想访问单个id
对象的Users
属性。
第一个场景的Users
类的示例是:
class Users(object):
user = User()
第二个Senario的Users
类的示例是:
class Users(object):
id = 0
我认为可能发生的事情是,当访问user
对象上的Users
属性时,它可能会再次查询数据库。如果您可以包含Users
类定义,则更容易理解根问题。
答案 1 :(得分:1)
首先访问用户的用户ID
您的User
表中包含user
字段,并且您正在访问a_user.user.id
第二个访问User
表的id
字段