gpt4 book ai didi

django - 在 django 表单向导中使用不同的模板

转载 作者:行者123 更新时间:2023-12-01 09:04:33 32 4
gpt4 key购买 nike

我正在查看文档,但我不太确定如何为每个步骤使用不同的模板...

我查看了源代码,似乎模板名称是硬编码的:

class WizardView(TemplateView):
"""
The WizardView is used to create multi-page forms and handles all the
storage and validation stuff. The wizard is based on Django's generic
class based views.
"""
storage_name = None
form_list = None
initial_dict = None
instance_dict = None
condition_dict = None
template_name = 'formtools/wizard/wizard_form.html'

...........

文档说了一些关于 mixins 的内容,但我不知道如何使用它们,因为我刚开始使用 django...

谢谢


更新:

我进一步查看了源代码,发现有一个方法get_template_names

我试过了:

class AddWizard(SessionWizardView):
def get_template_names(self, step):
if step == 0:
return 'business/add1.html'
return 'business/add2.html'
def done(self, form_list, **kwargs):
return render_to_response('business/done.html', {
'form_data': [form.cleaned_data for form in form_list],
})

但出现错误:

get_template_names() 只接受 2 个参数(给定 1 个)

最佳答案

get_template_names 不接受参数。您不能只为要接受的函数定义一个新参数并希望框架将其传递进来! (供您将来的故障排除)

WizardView 源来看,您似乎可以通过 self.steps.current 访问当前事件的步骤,您可以在 get_template_names< 中使用它 View 返回包含该步骤的路径。

class AddWizard(SessionWizardView):
def get_template_names(self):
return ['step_{0}_template.html'.format(self.steps.current)]

我不确定 current 是字符串还是整数或什么 - 但看一下 View ,您应该会发现一个有用的“找不到名为 X 的模板”错误。

关于django - 在 django 表单向导中使用不同的模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10490455/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com