我有2个表单的视图。表格没有任何相关字段。
表格1: 有一个FilteredSelectMultiple小部件显示从ftp服务器下载的一些文件。此表单中的每个文件都符合某些条件
表格2: 让FilteredSelectMultiple小部件显示与同一FTP服务器中的任何条件都不匹配的文件
我有3个场景:
每个表单必须单独工作
这是我的观点:
@login_required(login_url='/login/')
def archivoview2(request):
usuario = request.user
nomigrado = Archivo_NoMigrado()
spnm = nomigrado.archivos_nomig()
form = ProcFTPForm(usuario,prefix='f')
form2 = DesconocidoForm2(initial={'usuario':usuario},prefix='d')
if request.method == 'POST':
if form.is_valid():
form.save()
if request.method == 'POST' and not form.is_valid():
form = ProcFTPForm(usuario,request.POST)
form2 = DesconocidoForm2(request.POST)
if form2.is_valid():
form2.save()
#--Run stored procedure for files matching criteria---
proc = Lista_Final()
lista = proc.archivos()
tabla = Proc_Carga()
sp = tabla.carga()
#--Run Stored Procedures for unknown files------
carga = Carga_Unknown()
spcarga = carga.desconocido()
return HttpResponseRedirect('/resumen/')
if request.method == 'POST' and not form2.is_valid():
form = ProcFTPForm(usuario,request.POST)
form2 = DesconocidoForm2(request.POST)
if form.is_valid():
form.save()
#--Run stored procedure for files matching criteria---
proc = Lista_Final()
lista = proc.archivos()
tabla = Proc_Carga()
sp = tabla.carga()
return HttpResponseRedirect('/resumen/')
return render_to_response("archivo2.html",
{'form':form,'form2':form2},
context_instance=RequestContext(request))
当我只从表单1中选择文件时工作正常 但是当我试图同时保存两个格式时,我得到了错误 来自两种表格的每个字段中的需要文件。
至少我需要完成两个场景:
保存两个表格 或
仅保存表单1
任何建议
感谢提前
答案 0 :(得分:0)
您可能希望简化所有if request.method=='POST' ...
条件。这是我处理多种形式的方式。我不知道这是否正是处理两种形式的规范方式,但它看起来很干净。显然,这不是你的所有“运行存储过程”命令,也不是你的重定向。
form = ProcFTPForm(usuario,prefix='f')
form2 = DesconocidoForm2(initial={'usuario':usuario},prefix='d')
if request.method=='POST':
form = ProcFTPForm(request.POST, usuario)
form2 = DesconocidoForm2(request.POST)
if form.is_valid():
form.save()
if form2.is_valid():
form2.save()
else:
template = 'archivo2.html'
context = {
'form': form,
'form2': form2,
}
return render(request, template, context)