X-Git-Url: https://git.openstreetmap.org./osqa.git/blobdiff_plain/22236fb67da2f27ceb35ad138f4d534a4fd08251..9be87a69e33d2abe99c77b104d63fbf9a2a21ac6:/forum/models/base.py?ds=sidebyside diff --git a/forum/models/base.py b/forum/models/base.py index bf132c4..1111b43 100644 --- a/forum/models/base.py +++ b/forum/models/base.py @@ -150,6 +150,7 @@ class CachedQuerySet(models.query.QuerySet): to_return = [(isinstance(tr, ToFetch) and fetched[str(tr)] or tr) for tr in to_return] to_cache.update(dict([(self.model.infer_cache_key({on_cache_query_attr: attr}), r._as_dict()) for attr, r in fetched.items()])) + if len(to_cache): cache.set_many(to_cache, 60 * 60) @@ -161,7 +162,7 @@ class CachedQuerySet(models.query.QuerySet): yield row def _get_query_hash(self): - return md5(str(self.query)).hexdigest() + return md5(unicode(self.query).encode("utf-8")).hexdigest() @@ -257,6 +258,9 @@ class BaseModel(models.Model): def save(self, full_save=False, *args, **kwargs): put_back = [k for k, v in self.__dict__.items() if isinstance(v, models.expressions.ExpressionNode)] + if hasattr(self, '_state'): + self._state.db = 'default' + if self.id and not full_save: self.__class__.objects.filter(id=self.id).update(**self._get_update_kwargs()) else: