def login_or_logout_form(context, next): """ Usage: {% login_or_logout_form next %} After: Depending on whether the browsing user is logged in or not a login or logout form has been displayed After a successful login the user is redirected to the url next """ user = context['user'] request = context['request'] login_url = reverse('login') if request.path == login_url: return {'on_login_page': True } if next == login_url: next = reverse('index') if not user.is_authenticated(): form = AuthenticationForm(auto_id = "login-form-%s") form.fields['username'].widget.attrs['tabindex'] = 1 form.fields['password'].widget.attrs['tabindex'] = 2 form.id = "login-form" return {'login' : True, 'form' : form , 'next': next} else: return {'login': False }