在Django中,要在一个视图中更新两个表单,其中一个是UserChangeForm
(Django自带的用户表单),另一个是用户扩展模型的模型表单,可以按照以下步骤进行操作:
from django.contrib.auth.forms import UserChangeForm
from .forms import UserModelForm
def update_profile(request):
user_form = UserChangeForm(request.POST or None, instance=request.user)
profile_form = UserModelForm(request.POST or None, instance=request.user.profile)
# 其中UserModelForm是用户扩展模型的模型表单类,profile是用户扩展模型的实例
def update_profile(request):
# ...
return render(request, 'update_profile.html', {'user_form': user_form, 'profile_form': profile_form})
<form method="POST" action="">
{% csrf_token %}
{{ user_form.as_p }}
{{ profile_form.as_p }}
<button type="submit">保存</button>
</form>
def update_profile(request):
# ...
if user_form.is_valid() and profile_form.is_valid():
user_form.save()
profile_form.save()
# 处理表单提交后的逻辑
这样就可以在一个视图中更新两个表单,其中一个是UserChangeForm
,另一个是用户扩展模型的模型表单。
关于Django的表单和模型表单的详细信息,可以参考腾讯云的文档:
领取专属 10元无门槛券
手把手带您无忧上云