Всем привет! Пожалуйста, помогите с проблемой. Вот код вьюхи:

def get_base_context(prm):
    site_title = SiteTitle.objects.get()
    header_nav = Category.objects.exclude(title='Новости')
    disco = Disco.objects.all()
    disco_name = Disco.objects.filter(category_id=2).first()
    socnet = SocNetButtons.objects.all()
    username = get_user(prm).username
    context = dict(
        site_title=site_title,
        header_nav=header_nav,
        disco=disco,
        disco_name=disco_name,
        socnet=socnet,
        username=username
    )
    return context

def user_login(request):
    context = get_base_context(request)
    context.update(csrf(request))
    if request.POST:
        username = request.POST['username']
        password = request.POST['password']
        print(username)
        user = authenticate(username=username, password=password)
        if user is not None:
            if user.is_active:
                login(request, user)
                return redirect('/')
            else:

Из-за чего вылетает:

Environment:
Request Method: POST
Request URL: http://localhost:8000/login/

Django Version: 1.8
Python Version: 3.4.0
Installed Applications:
('django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'cannibal_corpse',
 'embed_video',
 'sorl.thumbnail')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
 'django.middleware.security.SecurityMiddleware')


Traceback:
File "/home/andrey/django/venv/lib/python3.4/site-packages/django/core/handlers/base.py" in get_response
  132.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/andrey/django/mydjangoproject/cannibal_corpse/views.py" in user_login
  90.         password = request.POST['password']
File "/home/andrey/django/venv/lib/python3.4/site-packages/django/utils/datastructures.py" in __getitem__
  322.             raise MultiValueDictKeyError(repr(key))

Exception Type: MultiValueDictKeyError at /login/
Exception Value: "'password'"

Если написать password = request.POST.get('password', '') (аналогично и username), то эта ошибка не вылетает, но user is not None = False, если password = request.POST['password'], то выскакивает MultiValueDictKeyError, но в shell'e user is not None = True. Что не нравится, не понимаю?