如何将当前用户的属性转换为dict格式[重复]
Posted
技术标签:
【中文标题】如何将当前用户的属性转换为dict格式[重复]【英文标题】:How to get current user's properties into dict format [duplicate] 【发布时间】:2019-08-28 03:05:33 【问题描述】:如何将当前用户的属性转换为如下所示的 dict 格式...我尝试了 request.user.__dict__
和 request.user.__class__.__dict__
但没有提供该数据
'_state': < django.db.models.base.ModelState object at 0x7fa2c8a14da0 > ,
'id': 1,
'password': 'gVFDqqWHxJhnrkyYANJb',
'last_login': None,
'is_superuser': False,
'username': 'ualexander',
'first_name': 'Valerie',
'last_name': 'Jones',
'email': 'gonen@yahoo.com',
'is_staff': False,
'is_active': True,
'date_joined': datetime.datetime(2019, 4, 6, 10, 52, 24, 142211, tzinfo = < UTC > )
views.py
def dashboard_view(request):
print(request.user.__dict__)
我的输出
'_setupfunc': <function AuthenticationMiddleware.process_request.<locals>.<lambda> at 0x7fe71c6bfea0>, '_wrapped': <User: nitin>
【问题讨论】:
请包含您的代码和输出。 我已经粘贴了@glhr 【参考方案1】:你可以这样做。
request.user.__class__.objects.filter(pk=request.user.id).values().first()
它将像这样返回示例输出
'id': 1, 'last_login': datetime.datetime(2019, 4, 5, 10, 44, 19, 110212, tzinfo=<UTC>), 'is_superuser': True, 'username': 'example', 'first_name': 'first', 'last_name': 'last', 'is_staff': True, 'is_active': True, 'date_joined': datetime.datetime(2019, 4, 5, 9, 31, 16, 736841, tzinfo=<UTC>), 'created_at': datetime.datetime(2019, 4, 5, 9, 31, 16, 962971, tzinfo=<UTC>), 'modified_at': datetime.datetime(2019, 4, 5, 9, 31, 16, 962992, tzinfo=<UTC>), 'deleted_at': None, 'is_deleted': False, 'user_id': 1, 'password': 'pbkdf2_sha256$150000$JDcvyHbn1aFI$8gzgVZP/+bvZVQ/OISSF/+BJcJuAJE7zGU4rpBVpA8M=', 'email': 'examle@gmail.com', 'member_from': datetime.date(2019, 1, 1), 'phone_number': '011111111'
更新:
您想获取对象作为请求用户的字典。
在 django request.user
中不给你数据作为字典格式
为了得到你想要的结果,你需要做一些棘手的任务。
request.user.__class__.objects.filter(pk=request.user.id).values().first()
这里request.user.__class__
是模型名称的结果,然后用当前用户过滤。
【讨论】:
我不使用 Django,但.__class__.objects.values()
看起来很麻烦。这实际上是正确的方法吗?
我用@Nikhil 和@roganjosh 的一些解释更新了我的答案以上是关于如何将当前用户的属性转换为dict格式[重复]的主要内容,如果未能解决你的问题,请参考以下文章