Перебор списка пользователей приводит к ошибке "'int' object has no attribute 'username'" в Django

Я работаю над проектом Django, в котором пытаюсь просмотреть список идентификаторов пользователей, чтобы получить их имена. Однако я сталкиваюсь с ошибкой, которая гласит: "'int' object has no attribute 'username'".

Вот мой код:

def Home(request):

profile = Profile.objects.get(user=request.user)
posts = Post_Upload.objects.all()
#show only the user posts you following 
user_following_list = FollowersCount.objects.filter(user=request.user).values_list('follower', flat=True)
print(user_following_list)

feed_lists = Post_Upload.objects.filter(user__in=user_following_list)

#user suggestion
all_users = User.objects.all()
all_following_users = []

for users in user_following_list:
    try:
        user = User.objects.get(username=users.username)
        all_following_users.append(user)
    except User.DoesNotExist:
        # Handle the case where the user does not exist (optional)
        pass


new_suggestion = [ x for x in list(all_users) if (x not in list(all_following_users))]
current_user = User.objects.filter(username=request.user.username)
final_suggestion = [x for x in list(new_suggestion) if (x not in list(current_user))]
random.shuffle(final_suggestion)

user_profile = []
user_profile_list = []

for users in final_suggestion:
    user_profile.append((users.id))

for ids in user_profile:
    profiles = Profile.objects.filter(id=ids)
    user_profile_list.append(profiles)

suggestion_user_profile_list = list(chain(*user_profile_list))[:4]


context = {"posts":feed_lists,"profile":profile,"suggestion_user_profile_list":suggestion_user_profile_list}
return render(request,'index.html',context)

Ошибка возникает в этой строке:

user = User.objects.get(username=users.username)

Вы инициализируете свою переменную по адресу

user_following_list = FollowersCount.objects.filter(user=request.user).values_list('follower', flat=True)

values_list возвращает QuerySet и flat=True гарантирует, что вместо кортежей у вас будут одиночные значения, которые будут представлять follower, как вы указали. Таким образом, вам нужно будет получить username тоже и избежать сплющивания:

user_following_list = FollowersCount.objects.filter(user=request.user).values_list('follower', 'username')

(не проверено)

Вернуться на верх