Используйте подпроцесс в форме действия шаблона - PullRequest
0 голосов
/ 06 февраля 2019

Есть ли способ запустить скрипт в действии формы в шаблоне?

     <form action="{% subprocess.check_call(['python', 'myFile.py']) %}" method="post">
<input class="btn_ok" type="submit" value="Validate" />

       </form>

Ответы [ 2 ]

0 голосов
/ 07 февраля 2019

Я сделал это.Я не использовал подпроцесс.Причина, по которой я задаю вопрос, который я разместил, заключается в том, что я хотел бы узнать на той же странице указателя, как получить код собрания в моем приложении без перенаправления в другом шаблоне.

В URL.Пи моего приложения, я упомянул путь:

urlpatterns = [
    path('', views.index),
]

В моем шаблоне у меня есть список встреч, которые я принял по набору запросов;используя блок {% для элемента в m_list_key%}.Я создал небольшую форму (с кнопкой отправки) внутри итерации "for":

<form action="/meetingPage/" method="post">
   {% csrf_token %}
   <input type="hidden" value="{{ item.codeMeeting }}" id="code_meet" name="codeMeeting_name" />
   <input class="btnParticipate" type="submit" value="Participate" />
</form>

В views.py моего приложения meetingPage функция индекса:

 def index(request):
        meetings = Meeting.objects.all()
        if request.method == 'POST':
            the_code_meeting = request.POST['codeMeeting_name']
            return render(request, 'meetingPage/index.html',{'code_meeting_key': the_code_meeting,'m_list_key': meetings }) 
        return render(request, 'meetingPage/index.html')
0 голосов
/ 06 февраля 2019

Нет, это на самом деле не имеет никакого смысла.

Действие должно быть строкой с URL-адресом, по которому вы хотите, чтобы действие происходило.

Вместо этого вам нужно сделать следующее:создайте представление, которое выполняет любую обработку, которую вы пытаетесь выполнить в myFile.py, или заставьте представление запустить подпроцесс и запустите этот файл, если вам действительно нужно.

...