django不用orm搜索数据库没有的内容怎么跳转“没有此内容”的页面
4条回答 默认 最新
关注让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
问题解答:- 首先在views.py中定义一个搜索函数,接收前端传来的关键字,调用Django提供的数据库查询接口进行搜索:
from django.db.models import Q from django.shortcuts import render from app_name.models import ModelName #导入需要查询的模型 def search(request): keyword = request.GET.get('keyword') results = ModelName.objects.filter(Q(field__icontains=keyword)) #这里以单个字段为例子 if not results: return render(request, 'no_result.html') #若无结果,则跳转no_result.html页面 return render(request, 'result.html', {'results':results})- 在template文件夹中新建no_result.html和result.html两个html文件,用来展示搜索结果或者无搜索结果页面。 no_result.html的示例代码:
{% extends 'base.html' %} {% block content %} <h1>没有搜索到该内容</h1> {% endblock %}result.html的示例代码:
{% extends 'base.html' %} {% block content %} <h1>搜索结果展示</h1> {% for result in results %} <p>{{ result.field }}</p> {% empty %} <p>没有搜索到该内容</p> {% endfor %} {% endblock %}- 在urls.py中定义搜索页面的路由,并将route指向上一步中定义的搜索函数,如下:
from django.urls import path from app_name.views import search #导入上一步中定义的搜索函数 urlpatterns = [ path('search/', search, name='search'), ]- 在前端页面中定义搜索表单,用来接收用户输入的关键字并提交搜索请求,如下:
<form action="{% url 'search' %}" method="GET"> <input type="text" name="keyword" /> <button type="submit">搜索</button> </form>注意:需要在form标签中action属性里指向urls.py中定义的搜索路由。 综上所述,以上就是用Django如何实现搜索唯一记录没有此内容的跳转页面,具体实现方法可能因需求或场景略有不同。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报