I'm trying to write a view where the current logged in user's information is retrieved.
My view is written as below, and it works perfectly fine as long as I pass the user to the view in the URL.
def index(request, username, template="index.html"):
user = get_object_or_404(User,
username__iexact=username)
expression_qs = Expression.objects.all().order_by('-created')
album_qs = Album.objects.all().filter(head__isnull=False, is_public=True).order_by('-created')
user_following = user.relationships.following()
following_expressions = positive_filter(expression_qs, user_following, 'user')
following_albums = positive_filter(album_qs, user_following, 'user')
following_feed = sorted(
chain(following_albums, following_expressions),
key=attrgetter('created'), reverse = True)
return render(request, template, locals())
However, as this is a view for the homepage, I would prefer to not modify the URL. I'd rather (in the template or view) describe the logic for what happens if the user if logged in or not (if they're logged in, show the activity feed, if not, simply return a static page with a log in form).
My question is, how would I pass request.user (but not through the url) to the view so that it returns the queryset for the current user?