ich eine Suchmaske habendjango URL-Parameter als Form Standardwert
class PostSearchForm(forms.Form):
keyword = forms.CharField(label=_('Search'))
def __init__(self,*args,**kwargs):
self.request = kwargs.pop('request', None)
super(PostSearchForm,self).__init__(*args,**kwargs)
raise Exception(self.request) # This returns none
categories = Category.objects.filter(status=True)
self.fields['categories'] = forms.ModelChoiceField(queryset=categories, widget=forms.SelectMultiple(attrs={'class': 'some-class'}))
Jedes Mal, wenn Suche gemacht wird ich einen Build ein Formular mit Standardwert haben als das, was sie gesucht haben, so was habe ich versucht, ist die URL-Parameter erhalten in form init und setzen Sie den Wert, aber es war Rückgabe keine aufgrund eines Fehlers. Kann jemand mir sagen, wo ich falsch bin
Frage Aktualisiert
views.py
def get(self,request,category,*args,**kwargs):
search_form = PostSearchForm()
return render(request,self.template_name,{'search_form':search_form})
Vorlage
<form method="get" action="." id="searchForm">
{{ search_form.keyword }} # When searched then the value should be searched term
{{ search_form.categories }}
</form>
URL
http://example.com/?keyword=test
In Form I Test als Wert
Vielleicht sollten Sie zeigen, wo Sie das Formular verwenden. Übergeben Sie die Anfrage tatsächlich? (Obwohl ich nicht sehen kann, warum Sie es brauchen; Sie verwenden es nicht, und die Art zu tun, was Sie wollen, ist sowieso "Initial" übergeben.) –
@DanielRoseman aktualisierte Frage bitte überprüfen – overflow
Nun, ich kann nicht Verstehen Sie, wie Sie das erwarten. Du gibst eindeutig keine Anfrage an das Formular weiter, also wie soll es in diese Methode kommen? –