2017-12-22 7 views
0

私はDjangoフォームウィザードを使用しており、新しいユーザーを作成できる多段階フォームを作成しました。私はOnetoOne関係を設定するUserAddonという2番目のモデルを持っています。私は、そのモデルにPOSTする方法と、UserAddonでその関係を作成する方法を理解することはできません。誰かが知っていれば、私は投稿する前に、また、私はこの内Django FormWizard FKでデータベースに投稿

if form.is_valid(): 

または

if request.method == 'POST': 

のようなチェックを使用すべきですか?

ありがとうございます!

ウィザード

class ContactWizard(SessionWizardView): 
    template_name = "wizardApp/contact_form.html" 
    def done(self, form_list, **kwargs): 
     process_form_data(form_list) 
     return HttpResponseRedirect('../home') 

プロセス・フォーム・データ

私のコードに注目し
def process_form_data(form_list): 
    form_data = [form.cleaned_data for form in form_list] 
    first_name = form_data[0]['first_name'] 
    last_name = form_data[0]['last_name'] 
    email = form_data[0]['email'] 


    print(last_name) 
    print(first_name) 
    print(email) 

    user = User.objects.create_user(email) 
    user.first_name = first_name 
    user.last_name = last_name 
    user.email = email 
    user.save() 

    ##### SOMETHING LIKE THIS #### 
    user_addon = UserAddon.objects.create(user.email) 

    return form_data 

そのもの価値は、ユーザー名とユーザーの電子メールアドレスを設定するために書かれている

答えて

0

私は実際にそれを理解することができましたコメントを見る

処理フォームデータ

def process_form_data(form_list): 
    form_data = [form.cleaned_data for form in form_list] 
    first_name = form_data[0]['first_name'] 
    last_name = form_data[0]['last_name'] 
    email = form_data[0]['email'] 

    fav_food = form_data[1]['fav_food'] 
    fav_drink = form_data[1]['fav_drink'] 

    # print(username) 
    print(last_name) 
    print(first_name) 
    print(email) 
    print(fav_food) 
    print(fav_drink) 

    user = User.objects.create_user(email) 
    user.first_name = first_name 
    user.last_name = last_name 
    user.email = email 
    user.save() 

    #######Solution HERE########## 
    user_addon = UserAddon.objects.create(user=user,fav_food=fav_food,fav_drink=fav_drink) 
user_addon.save() 

私は依然として投稿の確認要求が不明であり、フォームが有効なので、まだ助かりました!

関連する問題