Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.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 为什么我得到QuerySet对象没有用户属性_Python_Django - Fatal编程技术网

Python 为什么我得到QuerySet对象没有用户属性

Python 为什么我得到QuerySet对象没有用户属性,python,django,Python,Django,我正在使用Django开发一个网站,在那里用户可以发送朋友信息 请求另一个用户,我的代码出现了一个错误。Queryset对象没有用户属性。根据我所附的图片,当我点击第一个用户的follow按钮时,所有按钮都会将文本更改为“cancel”,但当我点击第二个用户的按钮时,不会更改文本。我想当按钮点击按钮文本应该能够为每个用户改变 因为.exclude()将为您提供查询集。因此,您必须首先迭代queryset,然后从那里获得所需的用户 因为queryset表示列表 我认为您必须通过特定用户的配置文

我正在使用Django开发一个网站,在那里用户可以发送朋友信息 请求另一个用户,我的代码出现了一个错误。Queryset对象没有用户属性。根据我所附的图片,当我点击第一个用户的follow按钮时,所有按钮都会将文本更改为“cancel”,但当我点击第二个用户的按钮时,不会更改文本。我想当按钮点击按钮文本应该能够为每个用户改变

因为
.exclude()
将为您提供查询集。因此,您必须首先迭代
queryset
,然后从那里获得所需的用户

因为
queryset
表示
列表

我认为您必须通过特定用户的配置文件列表
zip
和按钮状态列表
button\u status
,如下所示

def home(request):
    p = Profile.objects.exclude(user=request.user)
    all_profile_users = []
    button_status_list = []                

    for user_obj in p:

        u = user_obj.user
        all_profile_users.append(u)
        sent_request = FriendRequest.objects.filter(from_user=u)

        friends = Profile.objects.filter(user=request.user, friends__id=user_obj.id).exist()


        button_status = 'none'
        if not friends
            button_status = 'not_friend'
            if len(FriendRequest.objects.filter(from_uset=request.user).filter(to_user=p.user)) == 1:
                button_status='add_request'
            if len(FriendRequest.objects.filter(from_user=p.user).filter(to_user=request.user)) == 1:
                button_status='accept_request'

        button_status_list.append(button_status)

    context = {'u':all_profile_users, 'profile_and_button_status': zip(p, button_status_list), 'sent_request':sent_request}
{% for data in profile_and_button_status %}

    <div class="row mb-2">
        ... YOUR DESIGN CODE ...
        {{ data.0.user.username }}

   {% if not request.user in u %} 

       {% if data.1 == 'not_friend' %}
            ... YOUR DESIGN CODE ...

       {% elif data.1 == 'follow_request_sent' %}  
            ... YOUR DESIGN CODE ...
然后,在模板中迭代配置文件和按钮状态,如下所示

def home(request):
    p = Profile.objects.exclude(user=request.user)
    all_profile_users = []
    button_status_list = []                

    for user_obj in p:

        u = user_obj.user
        all_profile_users.append(u)
        sent_request = FriendRequest.objects.filter(from_user=u)

        friends = Profile.objects.filter(user=request.user, friends__id=user_obj.id).exist()


        button_status = 'none'
        if not friends
            button_status = 'not_friend'
            if len(FriendRequest.objects.filter(from_uset=request.user).filter(to_user=p.user)) == 1:
                button_status='add_request'
            if len(FriendRequest.objects.filter(from_user=p.user).filter(to_user=request.user)) == 1:
                button_status='accept_request'

        button_status_list.append(button_status)

    context = {'u':all_profile_users, 'profile_and_button_status': zip(p, button_status_list), 'sent_request':sent_request}
{% for data in profile_and_button_status %}

    <div class="row mb-2">
        ... YOUR DESIGN CODE ...
        {{ data.0.user.username }}

   {% if not request.user in u %} 

       {% if data.1 == 'not_friend' %}
            ... YOUR DESIGN CODE ...

       {% elif data.1 == 'follow_request_sent' %}  
            ... YOUR DESIGN CODE ...

尝试
p.first()。用户
@clearity。。当我使用p.first().user时,它只给我列表中的第一个用户,但我希望所有用户都不包括当前用户。注释不用于扩展讨论;这段对话已经结束。