Django "login() tam olarak 1 argüman (2) verilen&; hata " alır
Oturum django kullanarak kullanıcı KİMLİĞİNİ saklamak için çalışıyorum.contrib.auth.giriş . Ama beklendiği gibi çalışmıyor.
Hata alıyorum() giriş tam olarak 1 argüman (2) verilen alır
Giriş(kullanıcı) ile alıyorumGiriş // Kullanıcı AttributeError' nesne özniteliği vardır 'yöntem'
Biraz http://docs.djangoproject.com/en/dev/topics/auth/ form modifyed örneği kullanıyorum :
from django.shortcuts import render_to_response
from django.contrib.auth import authenticate, login
def login(request):
msg = []
if request.method == 'POST':
username = request.POST['u']
password = request.POST['p']
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
login(request, user)
msg.append("login successful")
else:
msg.append("disabled account")
else:
msg.append("invalid login")
return render_to_response('login.html', {'errors': msg})
hiçbir şey login.html kendine has bir tarzı vardır:
<html>
<head>
<title></title>
</head>
<body>
<form action="/login/" method="post">
Login: <input type="text" name="u">
<br/>
Password: <input type="password" name="p">
<input type="submit" value="Login">
</form>
{% if errors %}
<ul>
{% for error in errors %}
<li>{{ error }}</li>
{% endfor %}
</ul>
{% endif %}
</body>
</html>
Kimseyi giriş yapmak için nasıl bir fikir var mı.
CEVAP
Görünümünüzü de bu işlevi çağırmak için bir girişim olarak yorumlanıyor login
login(request, user)
biter çağrısı yinelemeli olarak: fonksiyon denir
def login(request):
...
login(request, user)
Bunu önlemek için görünümü veya farklı bir şekilde django.contrib.auth
login
işlev bakın yeniden adlandırın. Örneğin giriş fonksiyonu yeniden adlandırmak için ithalat değişebilir:
from django.contrib.auth import login as auth_login
...
auth_login(request, user)
Tam olarak "HİERARCHY_REQUEST_ERR...
hata: '' xxx atar elemeleri ...
&; Güvenli olmayan JavaScript URL ile ...
Git ve " 'x' tam olarak...
&; tüm uyarıları hata olarak dışında T...