Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 获取用户名而不仅仅是视图列表中的ID_Python_Django_List_Listview - Fatal编程技术网

Python 获取用户名而不仅仅是视图列表中的ID

Python 获取用户名而不仅仅是视图列表中的ID,python,django,list,listview,Python,Django,List,Listview,我在网络应用程序上编程,我试图在列表视图中显示用户名,但我总是只得到id 以下是列表视图的代码: activities = Activity.objects \ .annotate(day=ExtractDay('created'), month=ExtractMonth('created'), year=ExtractYear('created'))\ .values('user', 'day', 'month', 'year') \ .anno

我在网络应用程序上编程,我试图在列表视图中显示用户名,但我总是只得到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)
我真的什么都试过了,但我不知道怎么处理


您能帮助我如何获取完整的用户名吗?

在您的用户模型中,您可以这样设置模型的字符串表示形式

def __str__(self):
    return '%s %s' % (self.first_name, self.last_name)

现在,您只需检索对象主键,即您提到的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

我终于解决了这个问题

我使用了简单的标签:

@register.simple_tag
def user_name(username):
    user = User.objects.get(pk=username)

    return user
然后在html中,它看起来像:

{% user_name user %}

我总是得到错误'int'对象没有属性'username',现在得到'dict'对象没有属性'objects',因为user=activities\u data.objects.get(user=username)您应该修改我键入的代码以适应您的应用程序上下文。不仅仅是复制和粘贴。但是如果你真的想这样做,更新你的帖子,提供包含User的模型类。我已经用simple_标签处理了这个问题(正如你在我的回答中看到的)。但是谢谢你的帮助你把它放在包含你的用户模型的models.py中,你的模型有first_name和last_name两个字段?我已经用simple_标签处理了这个问题(你可以在我的回答中看到)。但是谢谢你的帮助