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

  • Tahir Jahi

    Tahir Jahi

    6 Mart 2006
  • Truc Minh

    Truc Minh

    23 Ocak 2011
  • undrmyumbrellaa

    undrmyumbrel

    25 Temmuz 2012