在HTML按钮上单击调用Django

时间:2018-01-25 08:29:49

标签: html django function sorting

我正在尝试为Django项目创建一个基本排序函数,但是当我点击'sort'按钮时我不知道如何调用sort函数

Django观点:

def sort_btn(request):
if request.GET.get('sort-btn'):
    cits = Citizen.objects.all().order_by('name')
return render_to_response(request, 'civil_reg/index.html', {'cits': cits})

HTML按钮:

<button name="sort-btn" id="sort-btn">sort</button>

2 个答案:

答案 0 :(得分:5)

您需要将<button><form>标记包装在一起,如下面的代码段所示:

<form action='actionUrl' method='GET'>
<button type='submit'> sort me</button>
</form>

在您的urls.py模块中,您应该将actionUrl指向views.py模块中的特定视图,如下所示:

from django.urls import path

from . import views

urlpatterns = [
    path(actionUrl, views.yourSort),
]

你应该更多地了解Django上的请求生命周期:

  1. 用户提交请求
  2. Django尝试获取请求的网址和urls.py
  3. 中定义的路由之间的第一个匹配项
  4. 请求将传递到匹配的视图
  5. 视图被执行,通常这是一些模型处理
  6. 视图返回的响应(模板)为HttpResponse

答案 1 :(得分:0)

我不知道你的程序,但我的实现是完整的,因为它是有效的。

<button name="button" type="submit" onclick="location.href='{% url "actionUrl" %}'"> Send</button>

我试图在名为“sendEmail”的视图中调用一个函数

path('actionUrl/', views.sendEmail,name='actionUrl')

上面的一行是我在 urls 文件中包含的行。

由于我是 Django 新手,请检查我是否错了。

继续编码!!