2010-12-11 1 views
0

que je veux faire ces choses:comment enregistrer l'objet « utilisateur » qui ne sert pas à insérer à chaque fois que vous en avez besoin à l'aide django

1.open la login_view (qui est la connexion de l'utilisateur de la page)

2.Ecrire mon nom d'utilisateur et mot de passe, et de mettre « login » bouton, puis soumettre à la login_submit vue

3.in login_submit vue, si votre nom d'utilisateur et mot de passe sont à droite, vous revenez à la page d'accueil

4. mais quand je return HttpResponseRedirect("/") au hpmeage, le homepage.html (le code suivant) ne possède un objet user

5.i doivent faire comme ceci en login_submit vue:

return render_to_response('homepage.html',{'user':user})

6.that est Lourdeur, Je veux utiliser return HttpResponseRedirect("/"), donc devrais-je définir un cookie qui enregistre l'utilisateur, ou a un autre moyen facile d'enregistrer l'utilisateur qui n'a pas l'habitude de l'insérer chaque fois que vous en avez besoin.

grâce

le homepage.html est:

{% if user.is_authenticated %} 
    <p>Welcome, {{ user.username }}. Thanks for logging in.</p> 
{% else %} 
    <p>Welcome, new user. Please <a href="/account/login_view">login</a></p> 
{% endif %} 

la page d'accueil virw est:

def home(request): 
    return render_to_response('homepage.html') 

c'est login_view:

def login_view(request): 
    if request.method == 'POST': 
     form = LoginForm(request.POST) 
     if form.is_valid(): 
      # Process the data in form.cleaned_data 
      # ... 
      return HttpResponseRedirect('/') # Redirect after POST 
    else: 
     form = LoginForm() # An unbound form 

    return render_to_response('accounts/login_view.html',{'form': form,}) 

le login_view.html est :

<form action="/account/login_submit/" method="post"> 
    <div class="fieldWrapper"> 
     {{ field.errors }} 
     {{ field.label_tag }}: {{ field }} 
    </div> 
    <p><input type="submit" value="login" /> or <a href="/account/register_view"><input type="button" value="register"></a></p> 
</form> 

et

def login_submit(request): 
    if request.method == 'POST': 
     username = request.POST['username'] 
     password = request.POST['password'] 
     user = authenticate(username=username, password=password) 
     if user is not None: 
      if user.is_active: 
       login(request, user) 
       return HttpResponseRedirect("/") 
      else: 
       return HttpResponse('user is not active') 
     else: 
      #return HttpResponseRedirect("/account/login_submit") 
      return HttpResponse('login error') 

Répondre

Questions connexes