Две формы на одном шаблоне в django. Как сотрудничать с шаблоном с помощью views.py?

У меня есть шаблон с двумя такими формами и двумя текстовыми областями, в которые будет возвращаться загруженное содержимое:

   <form
            class="form-inline"
            role="form"
            action="/controlepunt140"
            method="POST"
            enctype="multipart/form-data"
            id="form_pdf"
            
          >
            <div class="form-group">
              {% csrf_token %} {{ form_pdf }}
              <button type="submit" name="form_pdf" class="btn btn-warning">Upload!</button>
            </div>
          </form>
          <div class="form-outline">
            <div class="form-group">
              <textarea class="inline-txtarea form-control" cols="70" rows="25">
{{content}}</textarea
              >   <form
            class="form-inline"
            role="form"
            action="/controlepunt140"
            method="POST"
            enctype="multipart/form-data"
            id="form_excel"
          >
            <div class="form-group">
              {% csrf_token %} {{ form }}
              <button type="submit" name="form_excel" class="btn btn-warning">Upload!</button>
            </div>
          </form>

 <textarea class="inline-txtarea form-control" cols="65" rows="25">
{{content_excel}}</textarea
              >

и views.py:

class ReadingFile(View):
    def get(self, request):
        form = ProfileForm()
        return render(request, "main/controle_punt140.html", {
            "form": form
        })

    def post(self, request):       
        types_of_encoding = ["utf8", "cp1252"]
        submitted_form = ProfileForm(request.POST, request.FILES)
        content = ''

        if submitted_form.is_valid():
            uploadfile = UploadFile(image=request.FILES["upload_file"])

            name_of_file = str(request.FILES['upload_file'])
            uploadfile.save()

        for encoding_type in types_of_encoding:
            with open(os.path.join(settings.MEDIA_ROOT,
                                   f"{uploadfile.image}"), 'r', encoding=encoding_type) as f:

                if uploadfile.image.path.endswith('.pdf'):
                    pass
                else:
                    content = f.read()

            return render(request, "main/controle_punt140.html", {
                'form': ProfileForm(),
                "content": content
            })

        return render(request, "main/controle_punt140.html", {
            "form": submitted_form,
        })

и forms.py:

class ProfileForm(forms.Form):
    upload_file = forms.FileField()

и urls.py:

urlpatterns = [  
    path('', views.starting_page, name='starting_page'),
    path('controlepunt140', views.ReadingFile.as_view(), name='controlepunt140')
]

Так это работает для первой функции загрузки (pdf). Вывод возвращается в textarea.

Но как сделать так, чтобы она также работала со второй функцией загрузки content_excel?

I.E.: как отличить две функции загрузки?

В соответствии с названием кнопок отправки:

#FORM PDF
<button type="submit" name="form_pdf" class="btn btn-warning">Upload!</button>

#FORM EXCEL
<button type="submit" name="form_excel" class="btn btn-warning">Upload!</button>

Итак, в вашем файле views.py вы можете различать их следующим образом:

if request.POST.get('form_pdf'):
   ....
elif request.POST.get('form_excel'):
   ....
Вернуться на верх