Наконец я нашел ответ.
Я думаю, что этот код не использовал мой собственный шаблон login.html (но если я ошибаюсь, пожалуйста, исправьте меня):
url(r'^login/',
"django.contrib.auth.views.login")
Я изменяю это на:
url(r'^login/',
"django.contrib.auth.views.login", {'template_name': 'login.html'}),
Затем я изменяю свой временный код login.html на:
<form method="post" action="">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Zaloguj" />
<input type="hidden" name="next" value="{{ next }}" />
</form>
У меня нет более глубокого значения того, что произошло, но этот код, который я скопировал здесь, работает. Спасибо всем за предложения. Это помогает мне найти ответ и немного лучше понять некоторые вещи.