def __setattr__(self, name, value): if name in ('_vals', '_name', '_appname', '_verbose_name', '_readonly', '_cache_prefix'): return object.__setattr__(self, name, value) if self._readonly: raise AttributeError, 'settings group %s is read-only' % self._name if not name in self._vals: raise AttributeError, 'setting "%s" not found' % name if not has_db: raise SettingsException, "no database -- settings are immutable" self._vals[name].initial = self._vals[name].clean(value) try: setting = Setting.objects.get(app=self._appname, site=Site.objects.get_current(), class_name=self._name, key=name) except Setting.DoesNotExist: setting = Setting(site=Site.objects.get_current(), app=self._appname, class_name=self._name, key=name) serialized = value if hasattr(self._vals[name].widget, '_format_value'): serialized = self._vals[name].widget._format_value(value) serialized = force_unicode(serialized) setting.value = serialized setting.save() if appsettings.USE_CACHE: cache.set(self._cache_prefix + name, value)
def __setattr__(self, name, value): if name in ('_vals', '_name', '_appname', '_verbose_name', '_readonly', '_cache_prefix'): return object.__setattr__(self, name, value) if self._readonly: raise AttributeError, 'settings group %s is read-only' % self._name if not name in self._vals: raise AttributeError, 'setting "%s" not found'%name if not has_db: raise SettingsException, "no database -- settings are immutable" self._vals[name].initial = self._vals[name].clean(value) try: setting = Setting.objects.get(app = self._appname, site = Site.objects.get_current(), class_name = self._name, key = name) except Setting.DoesNotExist: setting = Setting(site = Site.objects.get_current(), app = self._appname, class_name = self._name, key = name) serialized = value if hasattr(self._vals[name].widget, '_format_value'): serialized = self._vals[name].widget._format_value(value) serialized = force_unicode(serialized) setting.value = serialized setting.save() if appsettings.USE_CACHE: cache.set(self._cache_prefix+name, value)
def set_to_db(self): from appsettings.models import Setting from django.contrib.sites.models import Site site = Site.objects.get_current() setting = Setting(site=site, app=self.appname, class_name=self.name, key='testchar', value='new test value') setting.save()