我正在使用Web应用程序进行编程,试图以列表视图用户名显示,但我总是得到ID。
这是列表视图的代码:
activities = Activity.objects \
.annotate(day=ExtractDay('created'), month=ExtractMonth('created'), year=ExtractYear('created'))\
.values('user', 'day', 'month', 'year') \
.annotate(total=Count('user')) \
.order_by('user') \
获取用户:
for activities_data in activities:
user = activities_data['user']
型号代码:
class Activity(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=_('user'), on_delete=models.CASCADE)
我真的尽了一切,但是我不知道该如何处理。
您能帮我获得完整的用户名吗?
答案 0 :(得分:1)
在用户模型中,您可以像这样设置模型的字符串表示形式
def __str__(self):
return '%s %s' % (self.first_name, self.last_name)
答案 1 :(得分:0)
目前,您只是在检索对象主键,即您所讨论的ID。
您应该在数据库中执行搜索以查找正确的用户名。
for activities_data in activities:
#For each activities_data you get the related user object
user = activities_data.objects.get(user=username)
#From this user object you got, extract his name
text_to_display = user.username
答案 2 :(得分:0)
最后我已经解决了。
我用过simple_tag:
@register.simple_tag
def user_name(username):
user = User.objects.get(pk=username)
return user
然后在html中看起来像这样:
{% user_name user %}