def profile(request): # Get a list of the users API Keys keys = ApiKey.objects.filter(user=request.user) try: backup_tokens = request.user.staticdevice_set.all()[0].token_set.count( ) except IndexError: backup_tokens = 0 # Get a list of the users current sessions sessions = request.user.session_set.filter(expire_date__gt=now()) # Get the current session key session_key = request.session.session_key # Process the form if we have data coming in if request.method == 'POST': form = UserProfileForm(request.POST, instance=request.user.profile) if form.is_valid(): form.save() else: form = UserProfileForm(instance=request.user.profile) # Show the template return render( request, 'account_profile.html', { 'keys': keys, 'sessions': sessions, 'session_key': session_key, 'form': form, 'user': request.user, 'default_device': default_device(request.user), 'backup_tokens': backup_tokens, })