如何在Django的视图页面中识别模板页面的按钮点击事件?
我正在用Python做一个小项目,使用的是Django框架。
在这个项目中,有一个表格,里面列出了待办任务,包含的列有:任务ID、摘要、描述和截止日期。
我想在每一行添加一个“编辑”按钮,这样就可以编辑该行的数据。但是我不知道怎么在页面上识别到点击这个按钮的事件。请大家帮帮我……
2 个回答
1
下面是我的一个例子,如果你想用“GET”而不是“POST”。假设你想在用户点击“编辑”按钮时,从HTML文本框中获取用户输入的值,然后调用你在mypythoncode.py文件中写的一个Python函数(mypythonfunction)。请注意,“btn”这个类是在一个CSS文件中定义的。
在你的template.html文件里:
<form action="#" method="get">
<input type="text" value="8" name="mytextbox" size="1"/>
<input type="submit" class="btn" value="edit" name="mybtn">
</form>
在view.py文件里:
import mypythoncode
def mymethod(request):
if(request.GET.get('mybtn')):
mypythoncode.mypythonfunction( int(request.GET.get('mytextbox')) )
return render_to_response('App/yourtemplate.html')
8
我猜你不是在说浏览器的点击事件,因为你只用了 python
和 django
的标签。
你可以通过给 <input type="submit">
元素一个 name
来识别哪个按钮被点击了。
比如,当用户点击 <input type="submit" value="edit" name="summary" />
时,系统会在 request.POST
中看到一个 summary
的键,这样就能知道是这个按钮被按下了。
# form snippet
<input type="submit" value="Edit Summary" name="summary" />
<input type="submit" value="Edit Due Date" name="due_date" />
# view snippet
if request.POST.get('summary'):
print('user clicked summary')
elif request.POST.get('due_date'):
print('user clicked due date')