表单中需要身份验证

required authentication in forms

我在某些模板中遇到身份验证问题。 在我传递基于模型的表单的模板中,我只有在登录后才能访问, 但是在具有非基于模型的表单的模板中,我可以在不登录的情况下访问

基于非模型的表单:

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:

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

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

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

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

提前致谢

您没有通过 <a href="https://docs.djangoproject.com/en/1.7/ref/templates/api/#subclassing-context-requestcontext" rel="nofollow">RequstContext</a>render_to_response

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