質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

1回答

1300閲覧

generic.FormViewでform_classを複数選択したい

ktg_st

総合スコア33

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2020/05/01 15:13

タイトル通りですが、generic.FormViewでfrom_classを複数選択することは出来ないのでしょうか?

アカウント作成時に、
入力⇒確認画面⇒登録としたいのですが、現状上手く行っておらず下記サイトを参考にさせてもらっています。
https://narito.ninja/blog/detail/45/

generic.FormViewでform_calssの設定で躓いてます。
入力画面までは表示されますが、UserDateConfirmを呼び出した時点で何も帰ってきていない状態です。

よろしくお願いします。
他参考になりそうなサイトなどあったら教えてもらえると嬉しいです。

from .forms import ProfileForm, UserCreateForm from django.db import transaction from django.contrib.auth import login, authenticate from django.shortcuts import render, redirect from django.views import generic from django.contrib.auth import get_user_model from django.urls import reverse_lazy User = get_user_model() def UserDateInput(request): template_name = 'accounts/signup.html' user_form = UserCreateForm profile_form = ProfileForm context = { "user_form": user_form, "profile_form": profile_form, } # form_class = UserCreateForm return render(request, 'accounts/signup.html',context) def UserDateConfirm(request): user_form = UserCreateForm(request.POST or None) profile_form = ProfileForm(request.POST or None) context = { "user_form": user_form, "profile_form": profile_form, } if request.method == "POST" and user_form.is_valid() and profile_form.is_valid(): return render(request, 'accounts/user_date_confirm.html', context) else: return render(request, 'accounts/signup.html', context) class UserDateCreate(generic.CreateView): user_form = UserCreateForm(request.POST or None) profile_form = ProfileForm(request.POST or None) if request.method == "POST" and user_form.is_valid() and profile_form.is_valid(): user = user_form.save(commit=False) user.is_active = True user.save() profile = profile_form.save(commit=False) profile.user = user profile.save() return redirect("login:index") context = { "user_form": user_form, "profile_form": profile_form, } success_url = reverse_lazy('login:index') def form_invalid(self, form): return render(self.request, 'accounts/signup.html',context)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

残念ながら、できません。

複数フォームをサポートするdjango-betterformsがありますので、利用を検討されてはいかがでしょうか?

投稿2020/05/02 04:33

hasami

総合スコア1277

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問