def show_profile(request, user_id): """ user_id: id of user to show the profile wr_user: User showing the display from """ #wr_user = UserProfile.objects.get(user=user_id) try: wr_user = User.objects.get(pk=user_id) except User.DoesNotExist: return HttpResponse('No Such User') try: userprofile = wr_user.userprofile except UserProfile.DoesNotExist: userprofile = UserProfile(user=wr_user) userprofile.save() followers = userprofile.get_followers() following = userprofile.get_followed_users() fav_circuits = userprofile.favorites.all() favs = [x.id for x in fav_circuits] if request.user.is_authenticated(): if user_id == str(request.user.id): own_profile = True following_wr_user = False else: own_profile = False if request.user in followers: following_wr_user = True else: following_wr_user = False else: following_wr_user = False own_profile = False user_categories = wr_user.categories.all() user_categories_ids = [str(uc.category) for uc in user_categories] circuits = Circuit.objects.filter(author=user_id).all() categories_form = make_categories_form() template_context = { 'wr_user': wr_user, 'followers': followers, 'following': following, 'following_wr_user': following_wr_user, 'own_profile': own_profile, 'sidebar_item': 'profile', 'circuits': circuits, 'favs_circuits': fav_circuits, 'user_categories': user_categories, 'user_categories_ids': user_categories_ids, 'favs': favs, 'categories_form': categories_form, } wr_user_fb = None try: wr_user_fb = UserFacebook.objects.get(user=wr_user) except UserFacebook.DoesNotExist: pass if wr_user_fb: integrator = FacebookIntegrator() fb_data = { 'fb_name': wr_user_fb.name, 'fb_link': wr_user_fb.link, 'fb_picture': \ integrator.get_profile_picture_url(wr_user_fb.facebook_graphid) } template_context['fb_data'] = fb_data wr_user_twitter = None try: wr_user_twitter = UserTwitter.objects.get(user=wr_user) except UserTwitter.DoesNotExist: pass if wr_user_twitter: integrator = TwitterIntegrator() twitter_data = { 'twitter_name': wr_user_twitter.name, 'twitter_screen_name': wr_user_twitter.screen_name, 'twitter_link': wr_user_twitter.link, 'twitter_picture': integrator.get_user_picture( wr_user_twitter.oauth_token_key, wr_user_twitter.oauth_token_secret, # Can set twitter picture size here 'bigger' ) } template_context['twitter_data'] = twitter_data return render(request, "profile/show_profile.html", template_context, )