openhealthcare / randomise.me

The Randomise Me Website
http://randomiseme.org
Other
7 stars 8 forks source link

500 when editing trial in admin #211

Closed davidmiller closed 11 years ago

davidmiller commented 11 years ago

Seems to be shoddy/stupid handling of Unicode.

Trial 145 on live is a reproducer.

Traceback (most recent call last):

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 140, in get_response response = response.render()

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/template/response.py", line 105, in render self.content = self.rendered_content

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/template/response.py", line 82, in rendered_content content = template.render(context)

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/template/base.py", line 140, in render return self._render(context)

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/template/base.py", line 134, in _render return self.nodelist.render(context)

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/template/base.py", line 830, in render bit = self.render_node(node, context)

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/template/base.py", line 844, in render_node return node.render(context)

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/template/loader_tags.py", line 124, in render return compiled_parent._render(context)

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/template/base.py", line 134, in _render return self.nodelist.render(context)

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/template/base.py", line 830, in render bit = self.render_node(node, context)

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/template/base.py", line 844, in render_node return node.render(context)

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/template/loader_tags.py", line 124, in render return compiled_parent._render(context)

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/template/base.py", line 134, in _render return self.nodelist.render(context)

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/template/base.py", line 830, in render bit = self.render_node(node, context)

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/template/base.py", line 844, in render_node return node.render(context)

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/template/loader_tags.py", line 63, in render result = block.nodelist.render(context)

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/template/base.py", line 830, in render bit = self.render_node(node, context)

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/template/base.py", line 844, in render_node return node.render(context)

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/template/loader_tags.py", line 63, in render result = block.nodelist.render(context)

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/template/base.py", line 830, in render bit = self.render_node(node, context)

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/template/base.py", line 844, in render_node return node.render(context)

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/template/defaulttags.py", line 195, in render nodelist.append(node.render(context))

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/template/loader_tags.py", line 156, in render return self.render_template(self.template, context)

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/template/loader_tags.py", line 138, in render_template output = template.render(context)

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/template/base.py", line 140, in render return self._render(context)

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/template/base.py", line 134, in _render return self.nodelist.render(context)

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/template/base.py", line 830, in render bit = self.render_node(node, context)

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/template/base.py", line 844, in render_node return node.render(context)

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/template/defaulttags.py", line 367, in render return strip_spaces_between_tags(self.nodelist.render(context).strip())

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/template/base.py", line 830, in render bit = self.render_node(node, context)

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/template/base.py", line 844, in render_node return node.render(context)

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/template/defaulttags.py", line 195, in render nodelist.append(node.render(context))

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/template/defaulttags.py", line 195, in render nodelist.append(node.render(context))

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/template/defaulttags.py", line 284, in render return nodelist.render(context)

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/template/base.py", line 830, in render bit = self.render_node(node, context)

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/template/base.py", line 844, in render_node return node.render(context)

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/template/defaulttags.py", line 284, in render return nodelist.render(context)

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/template/base.py", line 830, in render bit = self.render_node(node, context)

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/template/base.py", line 844, in render_node return node.render(context)

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/template/base.py", line 887, in render return _render_value_in_context(output, context)

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/template/base.py", line 865, in _render_value_in_context value = force_text(value)

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/utils/encoding.py", line 99, in force_text s = s.unicode()

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/forms/forms.py", line 411, in str return self.as_widget()

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/forms/forms.py", line 458, in as_widget return widget.render(name, self.value(), attrs=attrs)

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/contrib/admin/widgets.py", line 263, in render output = [self.widget.render(name, value, _args, *_kwargs)]

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/forms/widgets.py", line 555, in render options = self.render_options(choices, [value])

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/forms/widgets.py", line 579, in render_options for option_value, option_label in chain(self.choices, choices):

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/forms/models.py", line 920, in iter yield self.choice(obj)

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/forms/models.py", line 926, in choice return (self.field.prepare_value(obj), self.field.label_from_instance(obj))

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/forms/models.py", line 977, in label_from_instance return smart_text(obj)

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/utils/encoding.py", line 72, in smart_text return force_text(s, encoding, strings_only, errors)

File "/home/app/randomise_me/local/lib/python2.7/site-packages/django/utils/encoding.py", line 99, in force_text s = s.unicode()

File "/home/app/randomise_me/rm/trials/models.py", line 155, in unicode return '#({0}) {1}'.format(self.pk, self.title)

UnicodeEncodeError: 'ascii' codec can't encode character u'\xf3' in position 9: ordinal not in range(128)

davidmiller commented 11 years ago

Works!