Django login - missing 1 required positional argument
I have a simple login view:
def logowanie(request):
if request.method == 'POST':
user = authenticate(
username=request.POST.get('id_username', '').strip(),
password= request.POST.get('id_password', ''),
)
if user is None:
messages.error(request, u'Invalid credentblog.ials')
else:
if user.is_active:
login(request, user)
return HttpResponseRedirect(request.GET.get('next', '/'))
else:
messages.error(request, u'User is not active.')
return render_to_response('registration/login.html', locals(),
context_instance=RequestContext(request))
When I try to go to the login page, I get the error:
TypeError: login() missing 1 required positional argument: 'user'
What am I doing wrong?
+4
source to share
5 answers
We probably have the same error.
I solved it by fixing one line in urls.py
urlpatterns = patterns(
...
url(r'^login/$', views.login, name='login'),
)
in it:
urlpatterns = patterns(
...
url(r'^login/$', views.logowanie, name='login'),
)
This should be the name of the login you created, which is "logowanie" in your case.
0
source to share