如何在Django的视图页面中识别模板页面的按钮点击事件?

2 投票
2 回答
8756 浏览
提问于 2025-04-17 08:41

我正在用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

我猜你不是在说浏览器的点击事件,因为你只用了 pythondjango 的标签。

你可以通过给 <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')

撰写回答