mba*_*old 5 django django-formwizard
我的FormWizard(Django 1.4)允许用户来回走动,直到他完成向导.向导会保留用户填写的所有值,并在用户返回已完成的步骤时显示它们.
这适用于CharField,但不适用于FileFields.如果用户在包含FileField的步骤中提交文件,然后返回此步骤,则必须再次上载文件.
有没有办法用户不必重新上传文件?
请注意,表单数据尚未保存到数据库中.
小智 2
我最近遇到了同样的问题,可以通过子类化 Django 的 SessionWizardView (在我的例子中为 NamedUrlSessionWizardView)并覆盖 get_form 方法来解决它。
基本上我做了以下事情:
这是代码:
from django.contrib.formtools.wizard.views import NamedUrlSessionWizardView
class MyWizardView(NamedUrlSessionWizardView):
def get_form(self, step=None, data=None, files=None):
if step:
step_files = self.storage.get_step_files(step)
else:
step_files = self.storage.current_step_files
if step_files and files:
for key, value in step_files.items():
if files.has_key(key) and files[key] is not None:
step_files[key] = files[key]
elif files:
step_files = files
return super(MyWizardView, self).get_form(step, data, step_files)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
916 次 |
| 最近记录: |