我想从Django上的auth_user表中获取一些数据

时间:2016-03-17 06:14:15

标签: python django python-3.x

我想从auth_user表中获取一些数据,但我只能获得用户名。

views.py

from myapp.models import User2

result1 = User2.objects.filter(email="foobar@gmail.com")
print(result1)  # [<User: JohnLennon>]
result2 = User2.objects.filter(pk=1)
print(result2)  # [<User: JohnLennon>]

models.py

from django.contrib.auth.models import AbstractUser

class User2(AbstractUser):

使用pdb,这些都不起作用。

(Pdb)result1.id
(Pdb)result2.email
*** AttributeError: 'QuerySet' object has no attribute 'email'

我可以从其他表中获取数据。像,

views.py

rows = User_Profile.objects.filter(uid=1)

的test.html

{% for row in rows %}
    {{ row.fname }} 
{% endfor %}

但是,我无法从auth_user表中执行相同的操作。 如何从auth_user表中获取用户的数据,如first_name和email?

2 个答案:

答案 0 :(得分:1)

当你这样做时

result1 = User2.objects.filter(email="foobar@gmail.com")

创建一个QuerySet列表。 result1不是QuerySet对象,因此您无法通过打印列表的attrs来访问用户的属性。

你必须使用像这样的get()方法

result1 = User2.objects.get(email="foobar@gmail.com")

或者直接访问QuerySet List的第一个对象,如下所示:

result1 = User2.objects.filter(email="foobar@gmail.com")[0]

答案 1 :(得分:0)

对不起。看来我很困惑......

(Pdb) for i in result: i.email
'foobar@gmail.com'

有效。