如何显示所有用户的属性在Django

如何显示所有用户的属性在Django

问题描述:

这是我的代码:如何显示所有用户的属性在Django

def callback(req): 
token = req.session.get('token', None) 
if not token: 
    return render_to_response('callback.html', { 
    'token': True 
    }) 
token = oauth.OAuthToken.from_string(token) 
if token.key != req.GET.get('oauth_token', 'no-token'): 
    return render_to_response('callback.html', { 
    'mismatch': True 
    }) 
token = get_authorized_token(token) 

# Actually login 
obj = is_authorized(token) 
if obj is None: 
    return render_to_response('callback.html', { 
    'username': True 
    }) 
try: user = User.objects.get(username=obj['screen_name']) 
except: user = User(username=obj['screen_name']) 

user.oauth_token = token.key 
user.oauth_token_secret = token.secret 
user.save() 
req.session['user_id'] = user.id 
del req.session['token'] 

s = ''.join('%s: %s </br>' % (a, getattr(user, a)) for a in dir(user)) 
return HttpResponse(s) 

,我想用

s = ''.join('%s: %s </br>' % (a, getattr(user, a)) for a in dir(user)) 
return HttpResponse(s) 

显示用户的属性,

,但我得到一个错误:

AttributeError at /twitter/login/callback/ 

Manager isn't accessible via User instances 

所以我能做什么,

谢谢

你应该使用排除一个for循环,找出问题的所在!

我通过User对象循环,并发现它不喜欢getattr(user, '_base_manager')getattr(user, 'objects')

你只是想与用户对象相关的领域,还是真的所有的Python代码吗?

如果你只是想在models.py中定义的字段:

for field in user._Meta.fields: 
    print '%s: %s' % (field.name, field.value_to_string(user)) 

,如果你想所有的目录做
只是做一个正常的循环神奇。列表推导不会很容易地捕捉异常。

for attr in dir(user): 
    try: 
     print '%s: %s' % (attr, getattr(user, attr)) 
    except Exception, e: 
     print '%s: %s' % (attr, e) 

如果你爱你的列表理解那么多

def no_exception_getattr(user, attr): 
    try: 
     return getattr(user, attr) 
    except Exception, e: 
     return e 

''.join(['%s: %s' % (x, no_exception_getattr(user, x)) for x in dir(user)])