我有一个UserProfile模型,可以在标准的Django User模型周围添加额外的元数据。我正在创建一个注册页面,我希望用户输入用户模型中捕获的基本用户信息以及UserProfile模型中捕获的常规配置文件信息。
我们如何在Django的一个请求中捕获和验证这两个模型,可能是通过表单?
答案 0 :(得分:1)
关于是否将User和UserProfile分开,存在有效的争论。如果您想使用单独的类:
@csrf_protect
def register(request, extra_context=None):
if request.method == 'POST':
user_form = AddUserForm(data=request.POST, files=request.FILES)
user_profile_form = AddUserProfileForm(data=request.POST, files=request.FILES)
if user_form.is_valid() and user_profile_form.is_valid():
new_user = user_form.save(request.get_host())
new_user_profile = user_profile_form.save(request.get_host(), new_user)
return HttpResponseRedirect(reverse('registration_complete'))
else:
user_form = AddUserForm()
user_profile_form = AddUserProfileForm()
context = {}
return render_to_response('registration_form.html',
{ 'user_form': user_form,
'user_profile_form': user_profile_form },
context_instance=context)