Я пытаюсь реализовать панель поиска, чтобы запросить мою базу данных и показать только совпадения. Когда я нажимаю «Отправить», он просто возвращает «ПОИСК», что я установил как значение по умолчанию вместо печати ошибки.Django Search Bar Реализация
ajax.py
...
def chunkSearcher(request):
test = request.GET.get('search_box', "SEARCH")
print(test)
....
Searcher.html
<form type="get" action="." style="margin: 0">
<input id="search_box" type="text" name="search_box" value="Search..." >
<button id="search_submit" type="submit" >Submit</button>
urls.py
url(r'^ajax/chunk/Searcher/$',
ajax.chunkSearcher, name='chunkSearcher')
views.py (Это на самом деле работает здесь по какой-то причине, но он не будет признавать те же две строки кода в моем АЯКС код
def searcher(request):
# test = request.GET.get('search_box', "SEARCH")
# print(test)
this_main = Searcher(
request = request,
num_elements = Candidate.objects.all().count(),
size = 'col-xs-12',
title = 'Search',
modelname = 'Searcher',
listing_fields = [
{'readable_name': 'Name', 'model_attribute': 'full_name()', 'subtext_model': 'email', 'color': 'False'},
{'readable_name': 'Status', 'model_attribute': 'get_status_display()', 'color': 'True'},
{'readable_name': 'Automated Status', 'model_attribute': 'get_auto_status()', 'color': 'True'},
{'readable_name': 'Submitter', 'model_attribute': 'submitter', 'color': 'True'},
],
listing_actions = [
{'tooltip': 'Search', 'color': 'success', 'icon': 'plus', 'permission': 'prog_port.add_candidate', 'modal': 'candidateform', 'controller': 'addCandidate'},
],
)
context = {
'nav' : Nav(request),
'main' : this_main,
'fb' : TestFeedback()
}
return render(request, 'prog_port/base.html', context)
widgets.py
class Searcher:
def __init__(self, request,
num_elements,
size = 'col-xs-12',
modelname = None,
title = None,
listing_fields = None,
listing_actions = None):#!!
self.template = 'prog_port/widgets/Searcher.html'
self.size = size
self.modelname = modelname
self.num_elements = num_elements
self.num_pages = int(math.ceil(num_elements/25.0))
self.title = title
self.listing_fields = [x['readable_name'] for x in listing_fields]
self.listing_actions = listing_actions
for action in self.listing_actions:
action['restricted'] = False
if 'permission' in action:
if not request.user.has_perm(action['permission']):
action['restricted'] = True
Что произойдет, если вы измените атрибут 'action' вашей формы, чтобы указать URL-адрес вашего представления ajax? – souldeux
@souldeux Когда я изменяю действие на 'action ="/ajax/chunk/Searcher ", текст, который я ввел в поле, фактически выливается в мой терминал, но страница не загружается. ** Перед ** 'ПОИСК [08/Август/2016 13:18:54] "GET/Ajax/фрагмент/Searcher /? Страница = 1 & OrderBy = 0% 3Basc HTTP/1.1" 200 4467' * * После ** '[08/Aug/2016 14:12:30]« GET/ajax/chunk/Searcher /? Page = 1 & orderby = 0% 3Basc HTTP/1.1 "200 4243 [08/Aug/2016 14: 12:37] «GET/ajax/chunk/Searcher? Search_box = Test + Search HTTP/1.1" 301 0 Поиск теста [08/Aug/2016 14:12:37] "GET/ajax/chunk/Searcher /? search_box = Test + Поиск HTTP/1.1 "200 4240' –