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 '} ''フォーム= YourForm(初期=フォームデータ) ''リターンレンダリング(リクエスト、 "template.html"、{'フォーム ':フォーム}) ' – rwx