0
我是新來的,在Django。但我需要你的幫助:)Django提交後更新字段值
我已經創建使用的ListView,FormMixin類和一個簡單的FormView的搜索頁面:
class Search(ListView,FormMixin):
template_name = "users/search.html"
form_class = SearchForm
def get_context_data(self,**kwargs):
"""To get results"""
def post(self, request, *args, **kwargs):
return SearchFormView.as_view()(request)
而且
class SearchFormView(FormView):
template_name = 'users/search.html'
form_class = SearchForm
def get_success_url(self):
return reverse_lazy('users:search')
def get_initial(self):
if 'keySearch' in self.request.session:
for k in self.request.session.pop('keySearch'):
initial[k] = self.request.session.pop(k)
return initial
def form_valid(self, form):
print "Form valid"
request = form.cleaned_data
print "Search field {}".format(request)
for k,v in request.iteritems():
self.request.session[k]=v
self.request.session['keySearch']=request.keys()
return super(SearchFormView,self).form_valid(form)
但每次,我提交表單, 「搜索」字段爲空白。我的目標是保持在現場,用戶同時輸入並顯示關鍵字和搜索結果。我想我沒有以一種好的方式使用get_initial方法。
此外,我很抱歉這個髒碼。我希望你有解決方案和任何意見將是巨大的:)
問候
您需要預先填寫空白表單,然後再發送給用戶。 'form_data = {'form_field':'prefilled_form_field_data'}''form = YourForm(initial = form_data)''return render(request,「template.html」,{'form':form})' – rwx