Loading django/contrib/formtools/wizard/storage/base.py +6 −2 Original line number Diff line number Diff line Loading @@ -69,7 +69,9 @@ class BaseStorage(object): wizard_files = self.data[self.step_files_key].get(step, {}) if wizard_files and not self.file_storage: raise NoFileStorageConfigured raise NoFileStorageConfigured( "You need to define 'file_storage' in your " "wizard view in order to handle file uploads.") files = {} for field, field_dict in six.iteritems(wizard_files): Loading @@ -81,7 +83,9 @@ class BaseStorage(object): def set_step_files(self, step, files): if files and not self.file_storage: raise NoFileStorageConfigured raise NoFileStorageConfigured( "You need to define 'file_storage' in your " "wizard view in order to handle file uploads.") if step not in self.data[self.step_files_key]: self.data[self.step_files_key][step] = {} Loading django/contrib/formtools/wizard/views.py +7 −5 Original line number Diff line number Diff line Loading @@ -174,7 +174,9 @@ class WizardView(TemplateView): for field in six.itervalues(form.base_fields): if (isinstance(field, forms.FileField) and not hasattr(cls, 'file_storage')): raise NoFileStorageConfigured raise NoFileStorageConfigured( "You need to define 'file_storage' in your " "wizard view in order to handle file uploads.") # build the kwargs for the wizardview instances kwargs['form_list'] = init_form_list Loading Loading @@ -436,8 +438,8 @@ class WizardView(TemplateView): def get_all_cleaned_data(self): """ Returns a merged dictionary of all step cleaned_data dictionaries. If a step contains a `FormSet`, the key will be prefixed with formset and contain a list of the formset cleaned_data dictionaries. If a step contains a `FormSet`, the key will be prefixed with 'formset-' and contain a list of the formset cleaned_data dictionaries. """ cleaned_data = {} for form_key in self.get_form_list(): Loading @@ -458,8 +460,8 @@ class WizardView(TemplateView): def get_cleaned_data_for_step(self, step): """ Returns the cleaned data for a given `step`. Before returning the cleaned data, the stored values are being revalidated through the form. If the data doesn't validate, None will be returned. cleaned data, the stored values are revalidated through the form. If the data doesn't validate, None will be returned. """ if step in self.form_list: form_obj = self.get_form(step=step, Loading docs/ref/contrib/formtools/form-wizard.txt +25 −0 Original line number Diff line number Diff line Loading @@ -493,6 +493,21 @@ Advanced ``WizardView`` methods context = self.get_context_data(form=form, **kwargs) return self.render_to_response(context) .. method:: WizardView.get_cleaned_data_for_step(step) This method returns the cleaned data for a given ``step``. Before returning the cleaned data, the stored values are revalidated through the form. If the data doesn't validate, ``None`` will be returned. .. method:: WizardView.get_all_cleaned_data() This method returns a merged dictionary of all form steps' ``cleaned_data`` dictionaries. If a step contains a ``FormSet``, the key will be prefixed with ``formset-`` and contain a list of the formset's ``cleaned_data`` dictionaries. Note that if two or more steps have a field with the same name, the value for that field from the latest step will overwrite the value from any earlier steps. Providing initial data for the forms ==================================== Loading Loading @@ -534,6 +549,16 @@ This storage will temporarily store the uploaded files for the wizard. The :attr:`file_storage` attribute should be a :class:`~django.core.files.storage.Storage` subclass. Django provides a built-in storage class (see :ref:`the built-in filesystem storage class <builtin-fs-storage>`):: from django.conf import settings from django.core.files.storage import FileSystemStorage class CustomWizardView(WizardView): ... file_storage = FileSystemStorage(location=os.path.join(settings.MEDIA_ROOT, 'photos')) .. warning:: Please remember to take care of removing old files as the Loading docs/topics/files.txt +2 −0 Original line number Diff line number Diff line Loading @@ -139,6 +139,8 @@ useful -- you can use the global default storage system:: See :doc:`/ref/files/storage` for the file storage API. .. _builtin-fs-storage: The built-in filesystem storage class ------------------------------------- Loading Loading
django/contrib/formtools/wizard/storage/base.py +6 −2 Original line number Diff line number Diff line Loading @@ -69,7 +69,9 @@ class BaseStorage(object): wizard_files = self.data[self.step_files_key].get(step, {}) if wizard_files and not self.file_storage: raise NoFileStorageConfigured raise NoFileStorageConfigured( "You need to define 'file_storage' in your " "wizard view in order to handle file uploads.") files = {} for field, field_dict in six.iteritems(wizard_files): Loading @@ -81,7 +83,9 @@ class BaseStorage(object): def set_step_files(self, step, files): if files and not self.file_storage: raise NoFileStorageConfigured raise NoFileStorageConfigured( "You need to define 'file_storage' in your " "wizard view in order to handle file uploads.") if step not in self.data[self.step_files_key]: self.data[self.step_files_key][step] = {} Loading
django/contrib/formtools/wizard/views.py +7 −5 Original line number Diff line number Diff line Loading @@ -174,7 +174,9 @@ class WizardView(TemplateView): for field in six.itervalues(form.base_fields): if (isinstance(field, forms.FileField) and not hasattr(cls, 'file_storage')): raise NoFileStorageConfigured raise NoFileStorageConfigured( "You need to define 'file_storage' in your " "wizard view in order to handle file uploads.") # build the kwargs for the wizardview instances kwargs['form_list'] = init_form_list Loading Loading @@ -436,8 +438,8 @@ class WizardView(TemplateView): def get_all_cleaned_data(self): """ Returns a merged dictionary of all step cleaned_data dictionaries. If a step contains a `FormSet`, the key will be prefixed with formset and contain a list of the formset cleaned_data dictionaries. If a step contains a `FormSet`, the key will be prefixed with 'formset-' and contain a list of the formset cleaned_data dictionaries. """ cleaned_data = {} for form_key in self.get_form_list(): Loading @@ -458,8 +460,8 @@ class WizardView(TemplateView): def get_cleaned_data_for_step(self, step): """ Returns the cleaned data for a given `step`. Before returning the cleaned data, the stored values are being revalidated through the form. If the data doesn't validate, None will be returned. cleaned data, the stored values are revalidated through the form. If the data doesn't validate, None will be returned. """ if step in self.form_list: form_obj = self.get_form(step=step, Loading
docs/ref/contrib/formtools/form-wizard.txt +25 −0 Original line number Diff line number Diff line Loading @@ -493,6 +493,21 @@ Advanced ``WizardView`` methods context = self.get_context_data(form=form, **kwargs) return self.render_to_response(context) .. method:: WizardView.get_cleaned_data_for_step(step) This method returns the cleaned data for a given ``step``. Before returning the cleaned data, the stored values are revalidated through the form. If the data doesn't validate, ``None`` will be returned. .. method:: WizardView.get_all_cleaned_data() This method returns a merged dictionary of all form steps' ``cleaned_data`` dictionaries. If a step contains a ``FormSet``, the key will be prefixed with ``formset-`` and contain a list of the formset's ``cleaned_data`` dictionaries. Note that if two or more steps have a field with the same name, the value for that field from the latest step will overwrite the value from any earlier steps. Providing initial data for the forms ==================================== Loading Loading @@ -534,6 +549,16 @@ This storage will temporarily store the uploaded files for the wizard. The :attr:`file_storage` attribute should be a :class:`~django.core.files.storage.Storage` subclass. Django provides a built-in storage class (see :ref:`the built-in filesystem storage class <builtin-fs-storage>`):: from django.conf import settings from django.core.files.storage import FileSystemStorage class CustomWizardView(WizardView): ... file_storage = FileSystemStorage(location=os.path.join(settings.MEDIA_ROOT, 'photos')) .. warning:: Please remember to take care of removing old files as the Loading
docs/topics/files.txt +2 −0 Original line number Diff line number Diff line Loading @@ -139,6 +139,8 @@ useful -- you can use the global default storage system:: See :doc:`/ref/files/storage` for the file storage API. .. _builtin-fs-storage: The built-in filesystem storage class ------------------------------------- Loading