Django login function - TypeError: context must be a dict, not a context

Context must be a dict expression, not a Context

Hey. I am relatively new to Python and Django and am working on a project. I need to figure out what I have with the login view. No matter what I try, I get this type error.

Here is the html template and login view:

login.html template

{% extends "base.html" %}
    {% load bootstrap_tags %}
    {% block content %}
        <form role="form" method="post" action="{% url 'login' %}">
            <legend>Login</legend>
            {% csrf_token %}
            {{ form| as_bootstrap }}
            <div class="form-group">
                <button type="submit" class="btn btn-primary">Login</button>
            </div>
        </form>
    {% endblock %}

      

Account login function /views.py

def login(request):
    if request.method == 'POST':
        form = UserLoginForm(request.POST)
        if form.is_valid():
            user = auth.authenticate(email=request.POST.get('email'),
                                     password=request.POST.get('password'))

            if user is not None:
                auth.login(request, user)
                messages.error(request, "You have successfully logged in")
                return redirect(reverse('index'))
            else:
                form.add_error(None, "Your email or password was not recognised")

        else:
            form = UserLoginForm()

    args = {'form': form}
    args.update(csrf(request))
    return render(request, 'login.html', args)

      

When I try to navigate to the login pattern from the index on the local server, it returns typeError: context should be a dict, not a Context. Someone please shed some light on this error until they could find a solution.

Updated: full trace

Traceback:

File "/Users/Andrew/Documents/Code/code-institute-projects/stream-three/env/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner
  41.             response = get_response(request)

File "/Users/Andrew/Documents/Code/code-institute-projects/stream-three/env/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response
  187.                 response = self.process_exception_by_middleware(e, request)

File "/Users/Andrew/Documents/Code/code-institute-projects/stream-three/env/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response
  185.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/Users/Andrew/Documents/Code/code-institute-projects/stream-three/movie_app/MovieApp_prj/accounts/views.py" in login
  117.     return render(request, 'login.html', args)

File "/Users/Andrew/Documents/Code/code-institute-projects/stream-three/env/lib/python2.7/site-packages/django/shortcuts.py" in render
  30.     content = loader.render_to_string(template_name, context, request, using=using)

File "/Users/Andrew/Documents/Code/code-institute-projects/stream-three/env/lib/python2.7/site-packages/django/template/loader.py" in render_to_string
  68.     return template.render(context, request)

File "/Users/Andrew/Documents/Code/code-institute-projects/stream-three/env/lib/python2.7/site-packages/django/template/backends/django.py" in render
  66.             return self.template.render(context)

File "/Users/Andrew/Documents/Code/code-institute-projects/stream-three/env/lib/python2.7/site-packages/django/template/base.py" in render
  207.                     return self._render(context)

File "/Users/Andrew/Documents/Code/code-institute-projects/stream-three/env/lib/python2.7/site-packages/django/template/base.py" in _render
  199.         return self.nodelist.render(context)

File "/Users/Andrew/Documents/Code/code-institute-projects/stream-three/env/lib/python2.7/site-packages/django/template/base.py" in render
  990.                 bit = node.render_annotated(context)

File "/Users/Andrew/Documents/Code/code-institute-projects/stream-three/env/lib/python2.7/site-packages/django/template/base.py" in render_annotated
  957.             return self.render(context)

File "/Users/Andrew/Documents/Code/code-institute-projects/stream-three/env/lib/python2.7/site-packages/django/template/loader_tags.py" in render
  177.             return compiled_parent._render(context)

File "/Users/Andrew/Documents/Code/code-institute-projects/stream-three/env/lib/python2.7/site-packages/django/template/base.py" in _render
  199.         return self.nodelist.render(context)

File "/Users/Andrew/Documents/Code/code-institute-projects/stream-three/env/lib/python2.7/site-packages/django/template/base.py" in render
  990.                 bit = node.render_annotated(context)

File "/Users/Andrew/Documents/Code/code-institute-projects/stream-three/env/lib/python2.7/site-packages/django/template/base.py" in render_annotated
  957.             return self.render(context)

File "/Users/Andrew/Documents/Code/code-institute-projects/stream-three/env/lib/python2.7/site-packages/django/template/loader_tags.py" in render
  72.                 result = block.nodelist.render(context)

File "/Users/Andrew/Documents/Code/code-institute-projects/stream-three/env/lib/python2.7/site-packages/django/template/base.py" in render
  990.                 bit = node.render_annotated(context)

File "/Users/Andrew/Documents/Code/code-institute-projects/stream-three/env/lib/python2.7/site-packages/django/template/base.py" in render_annotated
  957.             return self.render(context)

File "/Users/Andrew/Documents/Code/code-institute-projects/stream-three/env/lib/python2.7/site-packages/django/template/base.py" in render
  1040.             output = self.filter_expression.resolve(context)

File "/Users/Andrew/Documents/Code/code-institute-projects/stream-three/env/lib/python2.7/site-packages/django/template/base.py" in resolve
  736.                 new_obj = func(obj, *arg_vals)

File "/Users/Andrew/Documents/Code/code-institute-projects/stream-three/env/lib/python2.7/site-packages/django_forms_bootstrap/templatetags/bootstrap_tags.py" in as_bootstrap
  28.     return template.render(c)

File "/Users/Andrew/Documents/Code/code-institute-projects/stream-three/env/lib/python2.7/site-packages/django/template/backends/django.py" in render
  64.         context = make_context(context, request, autoescape=self.backend.engine.autoescape)

File "/Users/Andrew/Documents/Code/code-institute-projects/stream-three/env/lib/python2.7/site-packages/django/template/context.py" in make_context
  287.         raise TypeError('context must be a dict rather than %s.' % context.__class__.__name__)

Exception Type: TypeError at /login/
Exception Value: context must be a dict rather than Context.

      

+3


source to share





All Articles