Django アプリケーションにユーザー登録フォームがあり、ユーザーが住所、都市、国、電話番号などの登録を試みているときに追加データを収集します。
post_save
このデータは、シグナルを介して Account モデル クラスに保存されます。ユーザー作成プロセスは次のようになります。
# Function to Create user Account/Profile
def create_user_account(sender, instance, created, **kwargs):
if created:
models.Account.objects.create(user=instance)
# Create User / User Registration
def UserRegistration(request):
if request.method == 'POST':
username = request.POST['fn'].capitalize() + ' ' + request.POST['ln'].capitalize()
# CREATE USER
newuser = User.objects.create_user(username=username, email=request.POST['email'], password=request.POST['pw'])
newuser.first_name = request.POST['fn'].capitalize()
newuser.last_name = request.POST['ln'].capitalize()
newuser.save()
return HttpResponse(username)
#Post Save handler to create user Account/Profile
post_save.connect(create_user_account, sender=User)
ここではUserRegistration
、ユーザーがフォームを投稿すると関数が呼び出され、この関数の下で POST データを取得できます。そのデータをメソッドに渡して、モデルcreate_user_account
のフィールドに入力する必要があります。Account
現在、Account
データベースに作成されたオブジェクトが表示されますが、ユーザー フィールド以外のすべてのフィールドが空です。明らかに、POST 変数がcreate_user_account
メソッドに渡されていないためです。