表格中要求的身份验证

时间:2015-02-20 22:11:14

标签: django django-forms django-views django-authentication

我在某些模板中遇到了身份验证问题。 在我基于模型传递表单的模板中,我只能在登录时访问, 但是在模板中模板非基于模型,我可以访问而无需记录

基于非模型形式:

class ProvSearchForm(forms.Form):
      proveedor = forms.ModelChoiceField(queryset=Proveedor.objects.all(),required=True)
      mes = forms.ChoiceField(
               choices = (
                          ('1',"Enero"),
                          ('2',"Febrero"),
                          ('3',"Marzo"),
                          ('4',"Abril"),
                          ('5',"Mayo"),
                          ('6',"Junio"),
                          ('7',"Julio"),
                          ('8',"Agosto"),
                          ('9',"Septiembre"),
                          ('10',"Octubre"),
                          ('11',"Noviembre"),
                          ('12',"Diciembre"),
                          ),
               widget = forms.Select()
              )
      def __init__(self, *args, **kwargs):
          super(ProvSearchForm, self).__init__(*args, **kwargs)
          self.helper = FormHelper()

我的观点:

@login_required(login_url='/login/')
def BuscarView(request):
    if request.method == 'POST':
       form = ProvSearchForm(request.POST)
       nombre = request.POST.get('proveedor')
       mes = request.POST.get('mes')
       usuario = request.user
       if form.is_valid():
          cargaftp = Lectura_FTP()
          spftp = cargaftp.leer_ftp()
          carga = Actualizar_Descarga()
          sp = carga.actualiza(nombre,mes,usuario)
          return HttpResponseRedirect('/archivo/')
    else:
       form = ProvSearchForm()
    return render_to_response('buscarform.html',
                              {'form':form})

我的网址:

url(r'^buscar/$', 'pc.views.BuscarView', name='buscar'),

这个表单是一些参数并将其传递给存储过程,我需要从记录的用户传递用户名,但我得到一个空(或null)值。

在我的模板的导航栏中,我有标记{{ user.username }}来呈现用户名,但在我传递非基于模型的表单的模板中,我看不到任何用户名,我可以访问beign logged。

如何在非基于模型的表单中启用身份验证,或者如何将用户名从已登录用户传递到此表单。

提前致谢

1 个答案:

答案 0 :(得分:1)

您没有通过RequstContext

传递render_to_response

return render_to_response('buscarform.html',
                              dict, context_instance=RequestContext(request))