Moved most form field initial values from forms to settings.

This commit is contained in:
2018-02-20 17:19:15 +01:00
parent 1d574ddf85
commit 5bb2edc749
5 changed files with 226 additions and 128 deletions

View File

@@ -1,10 +1,12 @@
import logging
from django import forms
from django.apps import apps
from django.core.exceptions import ImproperlyConfigured
from .. import converters
logger = logging.getLogger(__name__)
app_config = apps.get_containing_app_config(__package__)
class ChainedForm(forms.Form):
@@ -40,7 +42,12 @@ class ChainedForm(forms.Form):
self._session_data[k] = self._deserialize_value(session_data[k])
def _proceed_session_data(self, session_data):
pass
form_initials = app_config.settings.form_initials.get(self.__class__.__name__, dict())
for fieldname in self.fields:
if fieldname in form_initials:
value = form_initials[fieldname].get_value(session_data)
if value is not None:
self.fields[fieldname].initial = value
def _save_session_data(self):
if self._request is not None and hasattr(self._request, 'session'):