SORU
15 Temmuz 2009, ÇARŞAMBA


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
15 Temmuz 2009, ÇARŞAMBA


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)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • boniver

    boniver

    17 NİSAN 2006
  • Glyn Dewis

    Glyn Dewis

    25 AĞUSTOS 2007
  • Jason Rosolowski

    Jason Rosolo

    25 EKİM 2006