ÜBERBLICKWie kann ich Abfrageparameter dynamisch request.GET in Django
Eine URL mit Abfrageparametern aussieht.
http://example.api.com/search/?name=jhon&age=26
und zu sehen, wenn ich django-filter alle Parameter bin mit von der Anfrage automatisch extrahiert werden, und es wird ein gefilterte Abfrage-Set zurückzukehren.
views.py
class SearchView(TemplateView):
template_name = "search.html"
def get_queryset(self):
return SearchFilter(request.GET, queryset=Model.objects.all()).qs
def get_context_data(self, **kwargs):
context = super(SearchView, self).get_context_data(**kwargs)
return context
Wenn ich will es aus request.GET manuell extrahieren ich tun kann.
def get_queryset(self):
# extracting query parameter
q = self.request.GET.get('name')
PROBLEM ERKLÄRUNG
url Meine Suche sieht aus wie
http://example.api.com/search/jhon-26
Ich tue dies, weil ich will nicht Tasten wie 'Name' zeigen und ‚Alter 'zu öffentlich, dies ist für Sicherheitsabstraktion das sind die Spalten meiner db-Tabelle.
I jhon-26
in ** kwargs bin immer, ich will es spalten und als Abfrageparameter zu request.GET so eingestellt, dass meine Filterklasse wird
FRAGE
funktionieren Ist Gibt es irgendetwas, um das Attribut an request.GET zu setzen?
# may be any set function available for this
self.request.GET.set('name', 'jhon')
Wie kann ich das erreichen?
Warum nicht in Sitzung? und Zugriff in der Filteransicht? – Exprator
Wie kann ich auf die Anforderungssitzung in meiner Filterklasse zugreifen? – Satendra
Wenn Sie normalerweise auf Sitzungen in Sichten zugreifen, importieren Sie einfach die Anfrage in diese Datei. – Exprator