Ich versuche, eine Suchleiste zu implementieren, um meine Datenbank abzufragen und nur die Übereinstimmungen anzuzeigen. Wenn ich "submit" drücke, gibt es mir einfach "SEARCH", was ich als Standard eingestellt habe, anstatt einen Fehler zu drucken.Django Search Bar Implementierung
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 (Es funktioniert tatsächlich hier aus irgendeinem Grund, aber es wird die gleichen zwei Zeilen Code in meinem Ajax Code
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
nicht erkennen
Was passiert, wenn Sie das Attribut 'action' Ihres Formulars so ändern, dass es auf die URL Ihrer ajax-Ansicht zeigt? – souldeux
@souldeux Wenn ich die Aktion in 'action ="/ajax/chunk/Searcher "' ändere, spuckt der Text, den ich in das Feld eingegeben habe, tatsächlich in mein Terminal, aber die Seite wird nicht geladen. ** Vor ** 'SUCHE [08/Aug/2016 13.18.54] "GET/Ajax/chunk/Searcher /? Page = 1 & orderby = 0% 3Basc HTTP/1.1" 200 4467' * * Nach ** '[08/Aug/2016 14:12:30]" GET/ajax/chunk/Sucher /? Page = 1 & orderby = 0% 3Basc HTTP/1.1 "200 4243 [08/Aug/2016 14: 12:37] "GET/ajax/chunk/Sucher? Search_box = Test + Suche HTTP/1.1" 301 0 Testsuche [08/Aug/2016 14:12:37] "GET/ajax/chunk/Searcher /? search_box = Test + Suche HTTP/1.1 "200 4240" –