Ich habe ein Suchformular in der Navbar, die offensichtlich Site-weit verfügbar ist, jedoch funktioniert die Suche nur auf der Homepage, denn das ist die Ansicht der Suchcode geschrieben. Ich dachte, dass klassenbasierte Ansichten die Antwort wären, so dass ich die Suchfunktion einfach als Mix-In oder ähnliches hinzufügen könnte.Site Wide Navbar Suche mit Klassen basierten Ansichten
Grundlinie: Ich habe Probleme mit der Suchfunktion in einer Klasse DRY
Das Suchformular Rückkehr www.site.com/?q=search basiert abstrahiert. Ich muss q von der GET-Anfrage ergreifen und diese Information zu meiner search.html Seite zurückbringen.
Dies ist mein Code, wie es
views.py
class HomeListView(ListView, Searchmixin):
model = Part
queryset = Part.objects.order_by('-creDate')
template_name = 'parts/index.html'
paginate_by = 20
is_paginated = True
search.py
class SearchMixin(object):
def sindex(self):
query = self.request.GET.get('q')
return httpResponse(query)
def perf(self, query):
if query is not None:
pollist = self.objects.filter(
Q(project__name__icontains=query) |
Q(owner__icontains=query) |
Q(description__icontains=query) |
Q(pnumber__icontains=query)
)
return render(request, 'parts/search.html', pollist)
Danke Ich wusste das nicht. Mein Problem ist auch, dass der vorgestellte Code in gewisser Weise fehlerhaft ist, was ich nicht entziffern kann. Tut mir leid, ich hätte das deutlicher machen sollen. –