Django Find Out if User is Authenticated in Custom Tag

Posted by greggory.hz on Stack Overflow See other posts from Stack Overflow or by greggory.hz
Published on 2011-01-02T02:37:18Z Indexed on 2011/01/02 21:53 UTC
Read the original article Hit count: 167

Filed under:
|
|

I'm trying to create a custom tag. Inside this custom tag, I want to be able to have some logic that checks if the user is logged in, and then have the tag rendered accordingly. This is what I have:

def user_actions(context):
    request = template.Variable('request').resolve(context)
    return { 'auth': request['user'].is_athenticated() }

register.inclusion_tag('layout_elements/user_actions.html', takes_context=True)(user_actions)

When I run this, I get this error:

Caught VariableDoesNotExist while rendering: Failed lookup for key [request] in u'[{}]'

The view that renders this ends like this:

return render_to_response('start/home.html', {}, context_instance=RequestContext(request))

Why doesn't the tag get a RequestContext object instead of the Context object? How can I get the tag to receive the RequestContext instead of the Context?

EDIT:

Whether or not it's possible to get a RequestContext inside a custom tag, I'd still be interested to know the "correct" or best way to determine a user's authentication state from within the custom tag. If that's not possible, then perhaps that kind of logic belongs elsewhere? Where?

© Stack Overflow or respective owner

Related posts about python

Related posts about django