X-Git-Url: http://git.ithinksw.org/philo.git/blobdiff_plain/f212afea06d9af47d895b6b5be592eba347910cf..a917b5dd29218812c04a6eb8e89d21f17324553d:/models/nodes.py diff --git a/models/nodes.py b/models/nodes.py index 3f40205..99be196 100644 --- a/models/nodes.py +++ b/models/nodes.py @@ -7,6 +7,7 @@ from django.core.exceptions import ValidationError from django.core.servers.basehttp import FileWrapper from django.core.urlresolvers import resolve, clear_url_caches, reverse, NoReverseMatch from django.template import add_to_builtins as register_templatetags +from django.utils.encoding import smart_str from inspect import getargspec from philo.exceptions import MIDDLEWARE_NOT_CONFIGURED from philo.models.base import TreeEntity, Entity, QuerySetMapper, register_value_model @@ -210,7 +211,6 @@ class TargetURLModel(models.Model): reversing_parameters = JSONField(blank=True, help_text="If reversing parameters are defined, url_or_subpath will instead be interpreted as the view name to be reversed.") def clean(self): - # Should this be enforced? Not enforcing it would allow creation of "headers" in the navbar. if not self.target_node and not self.url_or_subpath: raise ValidationError("Either a target node or a url must be defined.") @@ -232,11 +232,7 @@ class TargetURLModel(models.Model): elif isinstance(params, dict): # Convert unicode keys to strings for Python < 2.6.5. Compare # http://stackoverflow.com/questions/4598604/how-to-pass-unicode-keywords-to-kwargs - kwargs = {} - for key, val in params.items(): - if isinstance(key, unicode): - key = str(key) - kwargs[key] = val + kwargs = dict([(smart_str(k, 'ascii'), v) for k, v in params.items()]) return self.url_or_subpath, args, kwargs def get_target_url(self): @@ -263,7 +259,7 @@ class TargetURLModel(models.Model): abstract = True -class Redirect(View, TargetURLModel): +class Redirect(TargetURLModel, View): STATUS_CODES = ( (302, 'Temporary'), (301, 'Permanent'),