8
新しいDjangoクラスベースのビューメソッドを使用して、2つのユニークなフォームを1ページに表示する方法を探してきました。Djangoクラスベースのビューを探していて、1つのページに複数のフォームがある例
誰でも参考にできますか?または、基本的な例を示します。 Googleは私の "友人"ではありません。
新しいDjangoクラスベースのビューメソッドを使用して、2つのユニークなフォームを1ページに表示する方法を探してきました。Djangoクラスベースのビューを探していて、1つのページに複数のフォームがある例
誰でも参考にできますか?または、基本的な例を示します。 Googleは私の "友人"ではありません。
キーは、フォームを処理するためにサブクラスFormView
のいずれかを使用する必要がないということです。手動でフォームを処理するための機械を追加するだけです。 FormView
サブクラスを使用する場合は、1つのフォームしか処理しません。したがって、2つのフォームが必要な場合は、2つ目のフォームを手動で処理するだけです。私はDetailView
を基底クラスとして使用しているだけで、FormView
型から継承する必要がないことを示しています。
class ManualFormView(DetailView):
def get(self, request, *args, **kwargs):
self.other_form = MyOtherForm()
return super(ManualFormView, self).get(request, *args, **kwargs)
def post(self, request, *args, **kwargs):
self.other_form = MyOtherForm(request.POST)
if self.other_form.is_valid():
self.other_form.save() # or whatever
return HttpResponseRedirect('/some/other/view/')
else:
return super(ManualFormView, self).post(request, *args, **kwargs)
def get_context_data(self, **kwargs):
context = super(ManualFormView, self).get_context_data(**kwargs)
context['other_form'] = self.other_form
return context