Как вызвать несколько функций с одним полем в django?
У меня есть две функции, которые вызывают один и тот же файл, загруженный пользователем, но выполняется только первая функция. Как мне сделать так, чтобы вызывались обе функции? Я не выполняю одни и те же действия над одним и тем же файлом, это невозможно сделать в одной функции, я должен сделать это с помощью нескольких функций. Есть идеи?
Это views.py
def mmy_view(request):
if request.method == "POST":
form = DocumentForm(request.POST, request.FILES)
if form.is_valid():
output = io.BytesIO()
newdoc = request.FILES['docfile']
dfs = pd.read_excel(newdoc, sheet_name=None, index_col=[0])
writer = pd.ExcelWriter(output)
for name, df in dfs.items():
#padnas code
qoutput.to_excel(writer, sheet_name=name)
html = qoutput.to_html()
writer.save()
output.seek(0)
return render(request, 'list.html', {'table': html})
else:
form = DocumentForm()
return render(request, 'list.html', {'form': form})
def mmmy_view(request):
if request.method == 'POST':
form = DocumentForm(request.POST, request.FILES)
if form.is_valid():
newdoc = Document(docfile=request.FILES['docfile'])
newdoc.save()
return redirect('mmmy-view')
else:
form = DocumentForm()
documents = Document.objects.all()
context = {'documents': documents, 'form': form}
return render(request, 'list.html', context)
Я предполагаю, что она всегда вызывает функцию mmy_view
. Поэтому вы можете следовать приведенному ниже фрагменту кода:
Код:
def mmy_view(request):
...
...
...
# yon can call other function like this before return
mmmy_view(request)
Делая это, вы столкнетесь с одной новой проблемой - какую функцию return render(request, 'list.html', {'form': form})
вы будете использовать. Будет лучше переосмыслить поток запросов и построить свои функции в соответствии с ним.
Поскольку у меня нет полного представления о структуре вашего проекта, я могу что-то упустить.