サインアップするときに複数のユーザータイプを作成する方法は?
-
02-10-2019 - |
質問
Django 1.2を使用していますが、2つのユーザータイプ(1つは企業用、もう1つはコンサルタント用)が必要です。私は自分のモデルのオブジェクト(is_companyまたはis_consultantのブール値のようなもの)またはdjangoのグループを使用してそれらを区別します。私が完全なnoobでなければそれはそれほど問題ではないと思います;)
認証バックエンドにdjango-registrationを使用しています。各ユーザータイプ(会社vsコンサルタント)のWebページに別のフォームがあります。 2つのケースとほぼ同じ2つの異なるビューを作成するのが最善ではないと思います。そのため、2つのタイプのいずれかとしてサインアップしたユーザーを識別/登録するのは最善の方法だと思います。
ご協力いただきありがとうございます。
解決
登録時にコンサルタントまたは会社であるかどうかをユーザーに選択しますか?もしそうなら、あなたはサブクラス化することによってあなた自身のフォームを作成することができます RegistrationForm
次に、新しいフォームをDjango-Registrationのパラメーターに渡します(それを行う方法に関するドキュメントを読んでください)。
フォームをサブクラス化し、追加のフィールドを追加するには、次のようなことをします。
from registration.forms import RegistrationForm
USER_TYPES = (
('consultant', 'Consultant'),
('company', 'Company'),
)
class MyRegistrationForm(RegistrationForm):
user_type = forms.ChoiceField(choices=USER_TYPES)
それ以降、信号をキャッチし、フォームデータで必要な通りに実行する必要があります Django-Registrationには素晴らしいドキュメントがあります
それがあなたが探していたものであることを願っています。
他のヒント
投稿を見るのではなく、クエリ文字列に情報を渡すことができます。したがって、1つの「ボタン」(実際には単なるリンクです)がリンクします /form?type=consultant
, 、および他のリンク /form?type=company
そして、あなたは取得情報からそれをつかむことができます