表单中需要身份验证
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))
我在某些模板中遇到身份验证问题。 在我传递基于模型的表单的模板中,我只有在登录后才能访问, 但是在具有非基于模型的表单的模板中,我可以在不登录的情况下访问
基于非模型的表单:
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))