有什么方法可以使用提交的表单数据来应用所有视图, 例如,
我有一页纸,
<form method="POST" autocomplete="off" action="{% url 'a_view' %}">
<label for="Region">Region</label>
<input class="form-control" placeholder="Enter Region" type="text" id="Region">
<button class="btn btn-primary">Apply</button>
在另一页中有另一个具有相同表单输入形式的表单,
<form method="POST" autocomplete="off" action="{% url 'b_view' %}">
<label for="Region">Region</label>
<input class="form-control" placeholder="Enter Region" type="text" id="Region">
<button class="btn btn-primary">Apply</button>
在必须发送到不同的视图之后,从此表单中获得用于过滤不同模型的数据的文本。 我想做的是 应用表单时,应将表单应用于我应用中的所有视图。
在view.py中,
def aview(request):
if request.method == 'POST':
sbc = MTD.pdobjects.all()
df = sbc.to_dataframe().reset_index(drop=True)
filter_list = request.POST.get('regionwiselist', None)
df=df[df['RGN'].isin(filter_list)]
df1=pandas.pivot_table(df,index='MKU',columns='Vertical',values=['Sales_Value','Unit_Sales_Price'],aggfunc='sum').replace(numpy.nan,0)
df1.reset_index(inplace=True)
dict1=df1.transpose().to_dict()
col=list(df1.columns)
context={
'MKU_value':dict1,
'MKU':col
}
return render(request, 'aview.html', context)
else:
sbc = MTD.pdobjects.all()
df = sbc.to_dataframe().reset_index(drop=True)
df=df[df['RGN'].isin(filter_list)]
df1=pandas.pivot_table(df,index='MKU',columns='Vertical',values=['Sales_Value','Unit_Sales_Price'],aggfunc='sum').replace(numpy.nan,0)
df1.reset_index(inplace=True)
dict1=df1.transpose().to_dict()
col=list(df1.columns)
context={
'MKU_value':dict1,
'MKU':col
}
return render(request, 'aview.html', context)
def bview(request):
if request.method == 'POST':
sbc = MTD.pdobjects.all()
df = sbc.to_dataframe().reset_index(drop=True)
filter_list = request.POST.get('regionwiselist', None)
df=df[df['RGN'].isin(filter_list)]
df1=pandas.pivot_table(df,index='Customer',columns='Salesman', values=['Sales_Value','Unit_Sales_Price'],aggfunc='sum').replace(numpy.nan,0)
df1.reset_index(inplace=True)
dict1=df1.transpose().to_dict()
col=list(df1.columns)
context={
'MKU_value':dict1,
'MKU':col
}
return render(request, 'bview.html', context)
else:
sbc = MTD.pdobjects.all()
df = sbc.to_dataframe().reset_index(drop=True)
df=df[df['RGN'].isin(filter_list)]
df1=pandas.pivot_table(df,index='Customer',columns='Saleman',values=['Sales_Value','Unit_Sales_Price'],aggfunc='sum').replace(numpy.nan,0)
df1.reset_index(inplace=True)
dict1=df1.transpose().to_dict()
col=list(df1.columns)
context={
'MKU_value':dict1,
'MKU':col
}
return render(request, 'bview.html', context)
我们不使用form.py,而是使用pandas数据框来实现表格到数据框和过滤器的功能。
请帮助我进行梳理, 谢谢。