forms.py 608 B

123456789101112131415161718192021222324
  1. from django import forms
  2. from ..cache import clear_settings_cache
  3. class ChangeSettingsForm(forms.Form):
  4. settings = []
  5. def save(self, settings):
  6. self.save_settings(settings)
  7. self.clear_cache()
  8. def save_settings(self, settings):
  9. for setting in self.settings:
  10. setting_obj = settings[setting]
  11. new_value = self.cleaned_data.get(setting)
  12. self.save_setting(setting_obj, new_value)
  13. def save_setting(self, setting, value):
  14. setting.value = value
  15. setting.save()
  16. def clear_cache(self):
  17. clear_settings_cache()