登録には、モデルごとにグループ化された次のフィールドが必要です。
ユーザープロフィール
- フルネーム
- 生年月日
- 職業
住所
- 街
- 街
- ジップ
- 州
私の質問は、1 つの登録フォームと 1 つのテンプレートだけをこれらのモデルの両方に保存したい場合、どうすればそれを実現できますか? **私は Django@1.5.4 を使用しています
登録には、モデルごとにグループ化された次のフィールドが必要です。
ユーザープロフィール
住所
私の質問は、1 つの登録フォームと 1 つのテンプレートだけをこれらのモデルの両方に保存したい場合、どうすればそれを実現できますか? **私は Django@1.5.4 を使用しています
from your app.forms import UserProfileForm, AddressForm
def your_view(request):
user_profile_form = UserProfileForm(request.POST or None)
address_form = AddressForm(request.POST or None)
if user_profile_form.is_valid() and address_form.is_valid():
# creates and returns the new object, persisting it to the database
user_profile = user_profile_form.save()
# creates but does not persist the object
address = AddressForm.save(commit=False)
# assigns the foreign key relationship
address.user_profile = user_profile
# persists the Address model
address.save()
return render(request, 'your-template.html',
{'user_profile_form': user_profile_form,
'address_form': address_form})
上記のコードは、 にUserProfile
外部キー フィールドがAddress
あり、モデルの から継承する上記のクラスを作成したことを前提としていModelForm
ます。
もちろん、気分を害することはありませんが、Django チュートリアルをざっと見ただけで、この質問に答える良いスタートが切れるはずです。モデルとクエリセット API のドキュメントを熟読することも、開始するのに適した場所です。
Django ビューは、request.POST 内のデータからハイドレートしようとするフォーム クラスの数を制限しません。