【发布时间】:2017-06-07 13:02:05
【问题描述】:
我已经扩展了 Django 中的默认用户模型。现在我的模型如下所示:
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
birth_date = models.DateField(auto_now=False, auto_now_add=False, default=datetime.now)
phone_number = models.CharField(max_length=13, blank=True, default="")
address = models.CharField(max_length=100, blank=True, default="")
organization = models.ForeignKey(Organization, blank=True, null=True)
一切正常,我可以通过管理面板等添加新用户。 但是,我有一个问题。我需要以以下形式返回对某些请求的自定义 JSON 响应:
[
{"firs_name": first_name, "phone_number": phone_number, ...},
{"firs_name": first_name, "phone_number": phone_number, ...},
...
]
如您所见,phone_number 属性属于 Profile 模型,我无法获取所有包含其 Profiles 的用户(我只能获取用户 ID)。
这是我现在得到的回复:
[{"username": "user", "profile": 2, "first_name": "User", "last_name": "User"}, {"username": "user1", "profile": 3, "first_name": "User1", "last_name": "User1"}, {"username": "user2", "profile": 4, "first_name": "User2", "last_name": "User2"}]
问题:有没有办法通过User.Objects.all()获取所有包含个人资料信息的用户对象?
谢谢!
附: 这就是我制作自定义 JSON 响应的方式:
def get_users_as_json(request):
all_users = User.objects.all().values("username", "first_name", "last_name", 'profile')
user_list = list(all_users)
return JsonResponse(user_list, safe=False)
【问题讨论】:
标签: python django python-2.7 django-models