在HTML按钮上调用Django单击

Pau*_* SZ 3 html sorting django function

我正在尝试为Django项目创建基本的排序功能,但是当我单击“排序”按钮时,我不知道如何调用排序功能

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})
Run Code Online (Sandbox Code Playgroud)

HTML按钮:

<button name="sort-btn" id="sort-btn">sort</button>
Run Code Online (Sandbox Code Playgroud)

adn*_*leb 7

您需要<button><form>以下代码包装您的with 标记:

<form action='actionUrl' method='GET'>
<button type='submit'> sort me</button>
</form>
Run Code Online (Sandbox Code Playgroud)

并且在您的urls.py模块中,您应该views.py按照以下方式从模块中指向带有特定视图的actionUrl :

from django.urls import path

from . import views

urlpatterns = [
    path(actionUrl, views.yourSort),
]
Run Code Online (Sandbox Code Playgroud)

您应该详细了解Django上的请求生命周期:

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

  • 不客气,不,您不必创建三个模板,您只需在每个视图中为上下文对象中的“cits”键分配不同的值即可。作为澄清:{'cits':byNamecits} {'cits':byAreacits}...等。 (2认同)