我想从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?
答案 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'
有效。