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

时间:2011-12-20 05:59:15

标签: python django

我正在使用python在django做一个小项目。

在该项目中,有一个表,其中包含具有列的待处理任务列表:task_id,summary,description,due_date。

我必须在每行中提供“编辑”按钮,以便可以编辑该特定行的数据。但我无法识别特定行的视图页面中的按钮单击事件。 请有人帮助我......

2 个答案:

答案 0 :(得分:6)

我假设您不是在谈论浏览器点击事件,因为您只使用pythondjango标记此事件。

您可以通过为<input type="submit">指定哪个name元素来识别。

点击<input type="submit" value="edit" name="summary" />的用户将通过summary

中存在request.POST密钥来识别
# 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')

答案 1 :(得分:0)

如果你想使用“GET”代替“POST”,下面是我的答案(例子)。 假设您想要在用户单击“编辑”按钮时从html文本框中的用户输入获取值,然后调用您在mypythoncode.py中编写的python函数(mypythonfunction)。请注意,“btn”类是在css文件中定义的。

在yourtemplate.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')