【发布时间】:2019-06-17 16:27:52
【问题描述】:
我有一个包含许多字段的用户模型
class User(AbstractBaseUser, PermissionsMixin):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
email = models.EmailField(max_length=255, unique=True)
username = models.SlugField(max_length=255, unique=True)
first_name = models.CharField(max_length=255, blank=True, null=True)
last_name = models.CharField(max_length=255, blank=True, null=True)
avatar = models.ImageField(upload_to='users/avatar', default='users/avatar/avatar.png')
last_login = models.DateTimeField(blank=True, null=True)
member_since = models.DateTimeField(default=timezone.now, db_index=True)
is_active = models.BooleanField(default=True)
is_staff = models.BooleanField(default=False)
is_superuser = models.BooleanField(default=False)
在特定视图中,我只对检索用户的用户名和头像感兴趣,因此我可以返回 JSON 响应,因此我执行以下操作:
users = User.objects.values('username', 'avatar')
这将返回一个包含以下数据的字典列表:
<QuerySet [
{'username': 'A', 'avatar': 'users/avatar/avatar.png'},
{'username': 'B', 'avatar': 'users/avatar/avatar.png'},
{'username': 'C', 'avatar': 'users/avatar/avatar.png'}
]>
请注意,头像的 URL 是相对的。如何在不检索用户的所有字段的情况下获取绝对 URL?
我想得到以下内容:
<QuerySet [
{'username': 'A', 'avatar': 'http://example.com/media/users/avatar/avatar.png'},
{'username': 'B', 'avatar': 'http://example.com/media/users/avatar/avatar.png'},
{'username': 'C', 'avatar': 'http://example.com/media/users/avatar/avatar.png'}
]>
【问题讨论】:
标签: django django-models django-orm