- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 django 1.4 中的表单向导来有条件地添加最多七个模型的实例。无论用户完成哪个步骤,我都希望最后一步显示他们输入的所有数据的预览。它不必是表单,因为用户可以使用“第一步”或“上一步”按钮返回并修复他们弄乱的任何数据。我还想向用户发送一封包含所有数据的确认电子邮件,并且我怀疑我在这里提出的任何解决方案也将提供相关数据。
这是我目前拥有的:
# views.py
FORMS = [
('person_application', PersonApplicationForm),
('family_application', FamilyApplicationForm),
('student_application', StudentApplicationForm),
('spouse', SpouseForm),
('child', ChildFormSet),
('roommate', RoommateFormSet),
('preview', Form), # only doing this because I think FormWizard requires a Form subclass for every step, which makes sense
]
TEMPLATES = {
...
'preview': 'preview.html',
}
condition_dict = {
...
'preview': True,
}
class SignupWizard(SessionWizardView):
...
def get_context_data(self, form, **kwargs):
context = super(SignupWizard, self).get_context_data(form=form, **kwargs)
if self.steps.current == 'preview':
context.update({'all_data': self.get_all_cleaned_data()})
return context
# # This is triggering an infinite loop or something because python gets stuck at 100+% cpu and won't stop even when I kill runserver
# def get_form_initial(self, step):
# if step == 'preview':
# return self.get_all_cleaned_data()
# return {}
...
# urls.py
urlpatterns = patterns('app.views',
...
url(r'^start$', SignupWizard.as_view(FORMS, condition_dict=condition_dict, instance_dict=modelform_instances), name='wizard'),
url(r'^thanks$', 'thanks', name='thanks'),
)
如您所见,在某些时候我想尝试实际使用表单进行预览,因此我尝试重写 WizardView.get_form_initial。我想使用 WizardView.get_all_cleaned_data() 提供所有数据作为表单的初始字典。然而,正如我在评论中提到的,这导致 python 卡住了,我必须手动找到并终止该进程才能停止它。
所以现在我想我只需重写 WizardView.get_context_data() 即可将额外的上下文变量发送到包含用户输入的所有数据的模板(再次使用 get_all_cleaned_data())。然而,由于几个原因,这会有点复杂。由于我的任何模型中具有相同名称的任何字段都会相互遮盖,因此我必须返回并命名所有模型字段名称。这似乎没有必要,但无论如何。另外,我的两个表单是 ModelFormSet,因此它们的数据以字典列表的形式出现。没什么大不了的,但它会使模板中的解析变得更加困难。这个问题越来越长,但查看数据可能会有所帮助,因此这里是 get_all_cleaned_data() 当前返回的示例(当它发送到模板时):
{'all_data': {'birthdate': datetime.date(1940, 2, 5),
'building_pref_1': u'NGH4',
'building_pref_2': u'K2',
'city': u'Nashville',
'country': u'',
'email': u'johnny@cash.com',
'first_name': u'Johnny',
u'formset-child': [{'birthdate': datetime.date(2013, 2, 3),
'gender': u'F',
'id': None,
'name': u'Rosanne'},
{'birthdate': datetime.date(2013, 2, 1),
'gender': u'F',
'id': None,
'name': u'Cathy'},
{'birthdate': datetime.date(2013, 2, 5),
'gender': u'F',
'id': None,
'name': u'Cindy'},
{'birthdate': datetime.date(2013, 2, 2),
'gender': u'F',
'id': None,
'name': u'Tara'},
{},
{}],
'furnishing': u'F',
'gender': u'F',
'global_id': u'',
'last_name': u'Cash',
'living_situation': u'SC',
'middle_initial': u'',
'move_in_date': None,
'move_out_date': None,
'name': u'Vivian Liberto',
'phone': u'9891111111',
'smoker_status': u'True',
'state_province': u'TN',
'street_1': u'street',
'street_2': u'',
'student_number': None,
'term': <Term: Summer 2013>,
'type': u'F',
'university_status': u'O',
'university_status_other': u'Travelling musician',
'zip_code': u''},
所以,我的问题是,我走在正确的轨道上还是有更好的方法来做到这一点?例如,我可以使用 FormPreview 子类作为“预览”步骤的表单并将 FormPreview.done() 定义为
def done(self, request, cleaned_data):
pass
这样数据就被传递到 FormWizard 的最终处理机制(即 WizardView.done())?
最佳答案
我只需重写 get_template_name
来处理要显示的模板(假设您有一个用于“预览”步骤的特殊模板)。
然后我会重载 get_form
,将每个步骤的数据附加到实例变量中。
最后,我会重载 get_context_data
以始终将该实例变量附加到我的模板上下文中。
重载 get_form 让您可以在显示预览之前操作数据。
关于django - 如何显示作为最终 django 表单向导步骤输入的所有数据的预览?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14912429/
我正在实现 WPF MVVM 向导,我想知道执行 DoOperation 的正确方法当加载新的向导页面 (UserControl) 时。 DoOperation在 MyWizard.ViewModal
我有一个场景,我正在尝试计划开始编码,并且我正在考虑使用django向导。 我的计划是通过两个步骤构建一个 django 向导,第一个简单,但第二个有点复杂。第二步将包含一个表单,该表单将根据第一步选
我想看看这些是否“建立了……” Flash网站(以支持用户定制的订购过程)是使用常规Flash还是Flex完成的? Site 1 Site 2 Site 3 Site 4 所有这些都可以通过定制的订购
我在人们提交一些数据的表单上使用了 FuelUX 向导,我们希望将其分解为逻辑步骤。效果非常好。 现在我正在处理相同表单的编辑版本,它工作正常,但由于步骤已经加载了数据,我希望用户能够直接跳到步骤 X
我有一个足够大的模型,可以切割成 3 种形式。我想使用 FormWizzard 来做到这一点,但我想知道,如何将表单中的信息保存到数据库? 所有东西都来自同一个模型。 你知道如何做到这一点吗? 最佳答
我使用 Primefaces 3.5。并尝试在的onnext处理程序中调用js函数。我希望在当前选项卡验证结果后,onnext 返回特定选项卡上的选项卡。我的验证函数 function val
我在我的应用程序中实现了向导 Bootstrap 。 我想检索当前选项卡的索引来测试显示或隐藏按钮“下一个”“上一个” $('#rootwizard').bootstrapWizard({ '
我想创建一个基于终端的安装程序/向导。 理想情况下,它就像 Ubuntu 服务器安装程序或 Arch Linux 安装程序——一个 ncurses (?) 重的 GUI,具有很多形式和箭头键优点。 其
问题 我的 WizardPage 中有一个 Composite,如果该 Composite 比向导窗口大,我想向其中添加滚动条,但到目前为止我尝试过的方法都不起作用。有人知道如何添加滚动条吗? 我想将
我正在尝试制作一个引导步骤表单,但它不想工作。我正在使用这段代码: https://codepen.io/digitalavinash/pen/VjyAXx?fbclid=IwAR2j8hRIG0gn
我目前正在开发一个网站(与健身相关),客户想要做一个功能,允许用户根据您从类似于 this example 上的 slider 中选择的选项来选择锻炼计划。 . 我想知道这是否可以用 CSS 完成,或
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 6 年前。 Improve
这应该很简单,但我错过了。我试图通过在我的 stylesheet.css 中使用此 css 将文本居中放置在我的向导 h1 标签中 .h1textalign { text-align:center;
我已经在这里问过这个问题 Creating next and back button on tabs bootstrap 3 wizard? 但我现在已经扩展它以在最后一个选项卡上添加完成,但现在我在
摩尔庄园手游已经上线好几天了,身边不少小伙伴也都开始玩了,不过其中的还是有不少的玩法等待大家去解锁,比如大家知道怎么去传送好友,蘑菇吗?向导怎么传送呢?有哪些方法和技巧?下面就和小编一起来看看。
每次我在我的 Android Studio 中为该项目创建一个新 fragment 时,它都会创建 android.support.v4.app.Fragment ,这不是我想要的。此外,它总是会触发
我正在为我的公司项目使用 SAPUI5 向导,但由于某种原因它对我不起作用。 这是我的代码: var allSteps = oWizardElement.getSteps(); var stepOne
在扩展中,我希望能够修改现有链接。数据库中的相应字段可能包含多个链接(例如 tt_content.bodytext)。 我想尽可能多地重用现有的功能。所以我想使用已经存在的链接向导。 我找到的是现有路
长话短说,我有一个开发人员让我成为一名向导,即使我付了钱给他,他也没有在没有回复的情况下离开,并坚持使用一个半工作的Python向导。 该向导在 Kodi 内部运行,下载并解压 zip 文件。但有时我
我对 Fuel UX 向导有疑问。当我按下 fuel ux 向导上的下一步按钮时,我发送使用 validate_step(step) 选择的 category_id 并使用来自 php 的 json
我是一名优秀的程序员,十分优秀!