0
我有一个搜索表单Django的URL参数的形式默认值
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'}))
只要搜索由我有一个生成与默认值的形式,因为他们已经搜查了什么,所以我试过的就是让URL参数在表单init中设置值,但由于某种错误返回无,因此它是。任何一个可以告诉我,我错了
更新问题
views.py
def get(self,request,category,*args,**kwargs):
search_form = PostSearchForm()
return render(request,self.template_name,{'search_form':search_form})
模板
<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
在我需要显示测试作为价值
也许您应该显示您使用表单的位置。你真的传递了请求吗? (虽然我看不出为什么你需要它,你没有使用它,而你想做的事情的方式是无论如何都要通过'initial'。) –
@DanielRoseman更新的问题请检查 – overflow
我不能了解你如何期待这项工作。你显然不会将请求传递给表单,那么它应该如何进入该方法? –