我对 Python 很陌生,所以这可能是一个愚蠢的问题,但我还是会问。对于这种常见的视图情况,是否有 Django 表单“设计模式”?当我运行视图时,我希望它根据填写表单的用户类型对两种不同类型的表单之一进行操作。在 if request.method 块中有两个 if/then 块来确定我正在处理的表单类型似乎很难看。我想要的是能够引用“CreateProfileForm”,它将引用 CreateManProfileForm 或 CreateWomanProfileForm,具体取决于会话变量中的内容。
谢谢!
def create_profile(request, template):
if request.session['user_type_cd'] == 'man':
is_man = True
else:
is_man = False
if request.method == "POST":
if is_man:
form = CreateManProfileForm(request.POST)
else:
form = CreateWomanProfileForm(request.POST)
if form.is_valid():
# Do stuff
return HttpResponseRedirect(reverse('do-next-thing'))
else:
if is_man:
form = CreateManProfileForm()
else:
form = CreateWomanProfileForm()
return render_to_response(template, locals(), context_instance=RequestContext(request))