在模板的表单操作中使用子流程

时间:2019-02-06 12:50:19

标签: django python-3.x django-forms

在模板的表单操作中,是否可以运行脚本?

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

       </form>

2 个答案:

答案 0 :(得分:1)

不,那真的没有任何意义。

操作必须是一个字符串,其中包含您希望该操作发生的URL。

您应该做的是创建一个视图,该视图执行myFile.py中您要执行的任何处理,或者,如果确实需要,请让该视图运行子进程并运行该文件。

答案 1 :(得分:0)

我做到了。我没有使用子流程。 我之所以问我发布的问题,是因为我想在同一索引页面中知道如何在我的应用程序中获取会议代码而无需在另一个模板中进行重定向。

在我的应用程序的urls.py中,我提到了路径:

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>

在我的应用程序 meetingPage 的views.py中,索引功能是:

 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')