【发布时间】:2020-02-09 18:42:47
【问题描述】:
我在使搜索页面正常工作时遇到了一些困难。 问题是我的模板和视图在搜索页面上抛出数据。而且我的搜索按钮功能不起作用。 如果有人可以看看并建议我缺少什么,将不胜感激。
提前致谢。
- 以下是我的观点:
from django.shortcuts import render
# Create your views here.
#from django.shortcuts import render
from django.http import HttpResponse
from .mongodb_connection import mongosearch
from .models import AppModel
from django.db.models import Q
# Create your views here.
def search_view(request):
model = AppModel
template_name = 'search.html'
results = []
title_term = ""
desc_term = ""
search_term = ""
url_term = ""
titles = AppModel.objects.all()
url = AppModel.objects.all()
if 'search' in request.GET:
search_term = request.GET['search']
titles = titles.filter(
Q(title__icontains=search_term) |
Q(desc__icontains=search_term)
)
titles = AppModel.objects.all()
results = mongosearch(title=title_term
#,desc = desc_term)
)
print(results)
context={
'results':results,
'search_term':search_term,
'titles':titles
}
return render(request, 'search.html', context)
- 以下 html 页面
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css"
integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
<!doctype html>
<html>
<nav class="navbar navbar-light bg-light">
<form class = "form-inline my-2 my-lg-1" method = "GET">
<!--action = "{%url 'search_view'%"> -->
<input
class="form-control mr-sm-2"
type="search"
placeholder="Search"
aria-label="Search"
name = 'search'
value = "{{request.GET.search}}">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
</form>
<br><br>
{% if titles %}
<ul class="messages">
{%for i in titles %}
<li class = "list-group-item">
{{i.title}}
</li>
{% endfor %}
</ul>
{% endif %}
</nav>
</html>
- mongo_connection
from pymongo import MongoClient
from pprint import pprint
def mongosearch(title=""):
connection = MongoClient('localhost',27017)
db = connection.djangodb
collection = db.spiderCollection
titles = collection.find()
for title in titles:
pprint(titles)
【问题讨论】: