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