2013-03-03 39 views
2

我一直试图在django项目的下拉列表(引导程序)中创建和验证登录表单(用户和密码),但该表单从未被创建并且从未被验证过,我真的不知道会不会是,这是代码(在简历,我不能把这样的形式,引导下拉菜单):在django项目的下拉引导上登录表单

forms.py

class LoginForm(forms.Form): 

    username = forms.CharField(min_length = 2, max_length=36,label=_('Username')) 

    password = forms.CharField(min_length = 4, max_length=16, widget=forms.PasswordInput(render_value=False), label=_('Password')) 

views.py

def index_view(request): 
activo = "index" 
secciones = seccion.objects.filter(titulo=activo) 
mensaje = "" 
if request.user.is_authenticated(): 
    return HttpResponseRedirect('/') 
else: 
    if request.method == "POST": 
     form = LoginForm(request.POST) 
     if form.is_valid(): 
      username = form.cleaned_data['username'] 
      password = form.cleaned_data['password'] 
      usuario = authenticate(username=username,password=password) 
      if usuario is not None and usuario.is_active: 
       login(request,usuario) 
       return HttpResponseRedirect('/') 
      else: 
       mensaje = "usuario y/o password incorrecto" 


ctx = {'activo':activo,'seccion':secciones} 
return render_to_response('home/index.html',ctx,context_instance=RequestContext(request)) 

base.html

 <div class="nav-collapse"><!-- Other nav bar content --> 
     <!-- The drop down mrender_to_response('home/index.html',ctx,context_instance=RequestContext(request))enu --> 
      <ul class="nav pull-right sign-in"> 
      {% if user.is_authenticated %} 
       <a id="profile-box" class="btn dropdown-info" data-toggle="dropdown" href="#"> 
        <i class="icon-user"></i> {{ user.username }} 
        <span class="caret"></span> 
       </a> 
       <ul class="dropdown-menu"> 
        <li><a href="#">Perfil</a></li> 
        <li class="divider"></li> 
        <li><a id="sign-out-link" href="{% url vista_logout %}">Cerrar Sesion</a></li> 
       </ul> 
      {% else %} 
       <li><a href="/accounts/register"><button class="btn btn-success" type="submit">Registrase</button></a></li> 

       <li class="divider-vertical"></li> 
       <li id="sign-in-box" class="dropdown"> 
       <a id="sign-in-link" class="dropdown-toggle" href="#" data-toggle="dropdown"><button class="btn btn-success">Ingresar</button></a> 


       <div class="dropdown-menu" style="padding: 15px; padding-bottom: 0px;"> 
        <form class="js-signin signin" action="." method="POST" accept-charset="UTF-8">{% csrf_token %} 
          <!--{% if form %}-->         
           {{ form.as_p }} 
          <!--{% else %}       
           <p> 
            <label for="username">usuario:</label> 
            <input id="username" type="text" name="username" /> 
           </p> 
           <p> 
            <label for="password">contraseña:</label> 
            <input id="password" type="password" name="password" /> 
           </p> 
          {% endif %}--> 


           <input id="remember_me" type="checkbox" name="remember_me" value="1" /> 
           <label class="string optional" for="user-remember-me"> Recordar mis datos</label>  
        </form> 

          <button id="login-button" class="btn btn-block btn-primary" type="submit">Ingresar</button> 



       </div> 


       </li>   
       {% endif %} 
      </ul> 
     </div> 

回答

2

你忘了的形式传递到您的上下文数据。

试试这个:

ctx = {'activo':activo,'seccion':secciones,'form': form} 
+0

非常感谢你,这是原因之一,并且按钮是出于形式。 – user1522096 2013-03-03 20:23:20