- python/
- Python UnicodeEncodeError:&x27;ascii';编解码器可以';t编码字符u'\xc5&x27;位置35:序号不在范围内(128)
Python UnicodeEncodeError:&x27;ascii';编解码器可以';t编码字符u'\xc5&x27;位置35:序号不在范围内(128)
Python UnicodeEncodeError:&x27;ascii';编解码器可以';t编码字符u'\xc5&x27;位置35:序号不在范围内(128),python,django,encoding,utf-8,django-admin,Python,Django,Encoding,Utf 8,Django Admin,我目前正在使用获取表单字段的ISO国家名称列表。它在我的网站上显示时没有错误,但在Django的管理网站上,由于存在非ASCII国家名称,它会导致上述错误:
Unicode错误提示:无法编码/解码的字符串为:itanÅland
我已经读到类似的问题可以通过encode('utf-8')属性来解决,但是如果不接触Django Admin本身,这似乎不是很可行。如果有人能解决这个问题,我将不胜感激
Models.py(消息):
从未来导入unicode文字
从django.db导入模型
从auth.
我目前正在使用获取表单字段的ISO国家名称列表。它在我的网站上显示时没有错误,但在Django的管理网站上,由于存在非ASCII国家名称,它会导致上述错误:
Unicode错误提示:无法编码/解码的字符串为:itanÅland
我已经读到类似的问题可以通过encode('utf-8')
属性来解决,但是如果不接触Django Admin本身,这似乎不是很可行。如果有人能解决这个问题,我将不胜感激
Models.py(消息):
从未来导入unicode文字
从django.db导入模型
从auth.models导入用户
从tourlisting.models导入教程
课程日程安排(models.Model):
开始日期=models.DateField()
end_date=models.DateField()
定义(自我):
返回“行程表”+str(self.id)
课堂活动(models.Model):
开始时间=models.DateTimeField()
end_time=models.DateTimeField()
description=models.CharField(最大长度=500,默认值=“”)
位置=型号.CharField(最大长度=200)
行程=型号。外键(行程)
类ThreadManager(models.Manager):
def create_线程(自我、旅行、行程、旅行者):
thread=self.create(旅游=旅游,行程=旅游,旅行者=旅行者)
回位螺纹
类线程(models.Model):
tour=模型。外键(tour)
行程=型号。ForeignKey(行程,null=True)
traveller=型号。外键(用户)
对象=线程管理器()
定义(自我):
返回“线程”+str(self.id)
类消息(models.Model):
message=models.TextField()
sender=models.ForeignKey(用户,相关的\u name='sent\u messages')
线程=模型。外键(线程)
发送的时间=models.DateTimeField(自动现在添加=True)
time\u read=models.DateTimeField(null=True,blank=True)
Models.py(tourlisting):
从未来导入unicode文字
从django.db导入模型
从auth.models导入用户配置文件,用户
从djmoney.models.fields导入MoneyField
从django.utils导入时区
从django_countries.fields导入CountryField
导入日期时间
类别(models.Model):
name=models.CharField(最大长度=100,唯一性=True)
定义(自我):
返回self.name
课堂参观(模型.模型):
tour_name=models.CharField(最大长度=100,默认值=“”)
tour_desc=models.CharField('tour Description',max_length=10000,默认值=“”)
导游=模型。外键(用户配置文件)
巡更长度=models.IntegerField('巡更长度(天)”,默认值为3)
country=CountryField(默认值为“”,最大长度为100)
city=models.CharField(最大长度=1000,默认值=“”)
ppl_min=models.IntegerField('最小旅行人数',默认值=1)
ppl_max=models.IntegerField('if travelers'的最大数量),默认值为10)
价格=货币字段(最大数字=6,小数点=2,默认货币=USD,默认值=50)
类别=型号。外键(类别)
发布日期=models.DateField('datepublished',auto\u now\u add=True)
active=models.BooleanField(默认值=True)
已删除=models.BooleanField(默认值=False)
定义(自我):
按{1}返回“{0}”。格式(self.tour\u name,self.tour\u guide)
def最近被列入(自我):
return self.pub_date>=timezone.now()-datetime.timedelta(天=7)
堆栈跟踪:
Environment:
Request Method: GET
Request URL: http://localhost:8000/admin/messaging/thread/2/change/
Django Version: 1.9.2
Python Version: 2.7.10
Installed Applications:
('django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.admin',
'django.contrib.staticfiles',
'messaging',
'crispy_forms',
'djmoney',
'django_countries',
'haystack',
'pysolr',
'django_tables2',
'phonenumber_field',
'django_extensions')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware')
Template error:
In template /usr/local/lib/python2.7/dist-packages/django/contrib/admin/templates/admin/change_form.html, error at line 33
ascii 23 : {% endblock %}
24 : {% endif %}
25 :
26 : {% block content %}
27 : {% block object-tools %}
28 : {% if change %}{% if not is_popup %}
29 :
30 : {% block object-tools-items %}
31 :
32 : {% url opts|admin_urlname:'history' original.pk|admin_urlquote as history_url %}
33 : {% trans "History" %}
34 :
35 : {% if has_absolute_url %}{% trans "View on site" %}{% endif %}
36 : {% endblock %}
37 :
38 : {% endif %}{% endif %}
39 : {% endblock %}
40 : {% csrf_token %}{% block form_top %}{% endblock %}
41 :
42 : {% if is_popup %}{% endif %}
43 : {% if to_field %}{% endif %}
Traceback:
File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response
174. response = self.process_exception_by_middleware(e, request)
File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response
172. response = response.render()
File "/usr/local/lib/python2.7/dist-packages/django/template/response.py" in render
160. self.content = self.rendered_content
File "/usr/local/lib/python2.7/dist-packages/django/template/response.py" in rendered_content
137. content = template.render(context, self._request)
File "/usr/local/lib/python2.7/dist-packages/django/template/backends/django.py" in render
95. return self.template.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render
206. return self._render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in _render
197. return self.nodelist.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render
992. bit = node.render_annotated(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render_annotated
959. return self.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py" in render
173. return compiled_parent._render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in _render
197. return self.nodelist.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render
992. bit = node.render_annotated(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render_annotated
959. return self.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py" in render
173. return compiled_parent._render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in _render
197. return self.nodelist.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render
992. bit = node.render_annotated(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render_annotated
959. return self.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py" in render
69. result = block.nodelist.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render
992. bit = node.render_annotated(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render_annotated
959. return self.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py" in render
69. result = block.nodelist.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render
992. bit = node.render_annotated(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render_annotated
959. return self.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/defaulttags.py" in render
220. nodelist.append(node.render_annotated(context))
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render_annotated
959. return self.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py" in render
209. return template.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render
208. return self._render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in _render
197. return self.nodelist.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render
992. bit = node.render_annotated(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render_annotated
959. return self.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/defaulttags.py" in render
220. nodelist.append(node.render_annotated(context))
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render_annotated
959. return self.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/defaulttags.py" in render
220. nodelist.append(node.render_annotated(context))
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render_annotated
959. return self.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/defaulttags.py" in render
326. return nodelist.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render
992. bit = node.render_annotated(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render_annotated
959. return self.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/defaulttags.py" in render
326. return nodelist.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render
992. bit = node.render_annotated(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render_annotated
959. return self.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render
1049. return render_value_in_context(output, context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render_value_in_context
1026. value = force_text(value)
File "/usr/local/lib/python2.7/dist-packages/django/utils/encoding.py" in force_text
78. s = six.text_type(s)
File "/usr/local/lib/python2.7/dist-packages/django/utils/html.py" in
381. klass.__unicode__ = lambda self: mark_safe(klass_unicode(self))
File "/usr/local/lib/python2.7/dist-packages/django/forms/boundfield.py" in __str__
43. return self.as_widget()
File "/usr/local/lib/python2.7/dist-packages/django/forms/boundfield.py" in as_widget
101. return force_text(widget.render(name, self.value(), attrs=attrs))
File "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/widgets.py" in render
291. 'widget': self.widget.render(name, value, *args, **kwargs),
File "/usr/local/lib/python2.7/dist-packages/django/forms/widgets.py" in render
528. options = self.render_options(choices, [value])
File "/usr/local/lib/python2.7/dist-packages/django/forms/widgets.py" in render_options
554. for option_value, option_label in chain(self.choices, choices):
File "/usr/local/lib/python2.7/dist-packages/django/forms/models.py" in __iter__
1110. yield self.choice(obj)
File "/usr/local/lib/python2.7/dist-packages/django/forms/models.py" in choice
1117. return (self.field.prepare_value(obj), self.field.label_from_instance(obj))
File "/usr/local/lib/python2.7/dist-packages/django/forms/models.py" in label_from_instance
1180. return smart_text(obj)
File "/usr/local/lib/python2.7/dist-packages/django/utils/encoding.py" in smart_text
42. return force_text(s, encoding, strings_only, errors)
File "/usr/local/lib/python2.7/dist-packages/django/utils/encoding.py" in force_text
80. s = six.text_type(bytes(s), encoding, errors)
Exception Type: UnicodeEncodeError at /admin/messaging/thread/2/change/
Exception Value: 'ascii' codec can't encode character u'\xc5' in position 35: ordinal not in range(128)
环境:
请求方法:获取
请求URL:http://localhost:8000/admin/messaging/thread/2/change/
Django版本:1.9.2
Python版本:2.7.10
已安装的应用程序:
(“django.contrib.auth”,
“django.contrib.contenttypes”,
“django.contrib.sessions”,
“django.contrib.sites”,
“django.contrib.messages”,
“django.contrib.admin”,
“django.contrib.staticfiles”,
“消息传递”,
“脆皮形式”,
“钱”,
“django_国家”,
“干草堆”,
“皮索尔”,
“django_表2”,
'电话号码\字段',
“django_扩展名”)
已安装的中间件:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
“django.middleware.csrf.CsrfViewMiddleware”,
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.xFrameOptions中间件',
'django.middleware.security.SecurityMiddleware')
模板错误:
在template/usr/local/lib/python2.7/dist-packages/django/contrib/admin/templates/admin/change_form.html中,第33行出现错误
ascii 23:{%endblock%}
24:{%endif%}
25 :
26:{%block content%}
27:{%block object tools%}
28:{%if-change%}{%if-not是_-popup%}
29 :
30:{%block object tools items%}
31:
32:{%url选择| admin_urlname:'history'original.pk | admin_urlquote作为history_url%}
33:{%trans“History”%}
34:
35:{%if有绝对url%}{%trans“站点上的视图”}{%endif%}
36:{%endblock%}
37 :
38:{%endif%}{%endif%}
39:{%endblock%}
40:{%csrf_令牌%}{%block form_top%}{%endblock%}
41 :
42:{%if是_popup%}{%endif%}
43:{%if to_field%}{%endif%}
回溯:
get_响应中的文件“/usr/local/lib/python2.7/dist packages/django/core/handlers/base.py”
174响应=self.process\u exception\u by_
from __future__ import unicode_literals
from django.db import models
from auth.models import UserProfile, User
from djmoney.models.fields import MoneyField
from django.utils import timezone
from django_countries.fields import CountryField
import datetime
class Category(models.Model):
name = models.CharField(max_length=100, unique=True)
def __str__(self):
return self.name
class Tour(models.Model):
tour_name = models.CharField(max_length=100, default='')
tour_desc = models.CharField('Tour Description', max_length=10000, default='')
tour_guide = models.ForeignKey(UserProfile)
tour_length = models.IntegerField('Tour length (days)', default = 3)
country = CountryField(default='', max_length=100)
city = models.CharField(max_length=1000, default='')
ppl_min = models.IntegerField('Minimum no. of travellers', default=1)
ppl_max = models.IntegerField('Maximum no. if travellers', default=10)
price = MoneyField(max_digits=6,decimal_places=2, default_currency='USD', default=50)
category = models.ForeignKey(Category)
pub_date = models.DateField('date published', auto_now_add=True)
active = models.BooleanField(default=True)
deleted = models.BooleanField(default=False)
def __str__(self):
return "{0} by {1}".format(self.tour_name, self.tour_guide)
def was_listed_recently(self):
return self.pub_date >= timezone.now() - datetime.timedelta(days=7)
Environment:
Request Method: GET
Request URL: http://localhost:8000/admin/messaging/thread/2/change/
Django Version: 1.9.2
Python Version: 2.7.10
Installed Applications:
('django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.admin',
'django.contrib.staticfiles',
'messaging',
'crispy_forms',
'djmoney',
'django_countries',
'haystack',
'pysolr',
'django_tables2',
'phonenumber_field',
'django_extensions')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware')
Template error:
In template /usr/local/lib/python2.7/dist-packages/django/contrib/admin/templates/admin/change_form.html, error at line 33
ascii 23 : {% endblock %}
24 : {% endif %}
25 :
26 : {% block content %}
27 : {% block object-tools %}
28 : {% if change %}{% if not is_popup %}
29 :
30 : {% block object-tools-items %}
31 :
32 : {% url opts|admin_urlname:'history' original.pk|admin_urlquote as history_url %}
33 : {% trans "History" %}
34 :
35 : {% if has_absolute_url %}{% trans "View on site" %}{% endif %}
36 : {% endblock %}
37 :
38 : {% endif %}{% endif %}
39 : {% endblock %}
40 : {% csrf_token %}{% block form_top %}{% endblock %}
41 :
42 : {% if is_popup %}{% endif %}
43 : {% if to_field %}{% endif %}
Traceback:
File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response
174. response = self.process_exception_by_middleware(e, request)
File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response
172. response = response.render()
File "/usr/local/lib/python2.7/dist-packages/django/template/response.py" in render
160. self.content = self.rendered_content
File "/usr/local/lib/python2.7/dist-packages/django/template/response.py" in rendered_content
137. content = template.render(context, self._request)
File "/usr/local/lib/python2.7/dist-packages/django/template/backends/django.py" in render
95. return self.template.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render
206. return self._render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in _render
197. return self.nodelist.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render
992. bit = node.render_annotated(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render_annotated
959. return self.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py" in render
173. return compiled_parent._render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in _render
197. return self.nodelist.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render
992. bit = node.render_annotated(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render_annotated
959. return self.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py" in render
173. return compiled_parent._render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in _render
197. return self.nodelist.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render
992. bit = node.render_annotated(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render_annotated
959. return self.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py" in render
69. result = block.nodelist.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render
992. bit = node.render_annotated(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render_annotated
959. return self.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py" in render
69. result = block.nodelist.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render
992. bit = node.render_annotated(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render_annotated
959. return self.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/defaulttags.py" in render
220. nodelist.append(node.render_annotated(context))
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render_annotated
959. return self.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py" in render
209. return template.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render
208. return self._render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in _render
197. return self.nodelist.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render
992. bit = node.render_annotated(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render_annotated
959. return self.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/defaulttags.py" in render
220. nodelist.append(node.render_annotated(context))
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render_annotated
959. return self.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/defaulttags.py" in render
220. nodelist.append(node.render_annotated(context))
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render_annotated
959. return self.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/defaulttags.py" in render
326. return nodelist.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render
992. bit = node.render_annotated(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render_annotated
959. return self.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/defaulttags.py" in render
326. return nodelist.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render
992. bit = node.render_annotated(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render_annotated
959. return self.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render
1049. return render_value_in_context(output, context)
File "/usr/local/lib/python2.7/dist-packages/django/template/base.py" in render_value_in_context
1026. value = force_text(value)
File "/usr/local/lib/python2.7/dist-packages/django/utils/encoding.py" in force_text
78. s = six.text_type(s)
File "/usr/local/lib/python2.7/dist-packages/django/utils/html.py" in
381. klass.__unicode__ = lambda self: mark_safe(klass_unicode(self))
File "/usr/local/lib/python2.7/dist-packages/django/forms/boundfield.py" in __str__
43. return self.as_widget()
File "/usr/local/lib/python2.7/dist-packages/django/forms/boundfield.py" in as_widget
101. return force_text(widget.render(name, self.value(), attrs=attrs))
File "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/widgets.py" in render
291. 'widget': self.widget.render(name, value, *args, **kwargs),
File "/usr/local/lib/python2.7/dist-packages/django/forms/widgets.py" in render
528. options = self.render_options(choices, [value])
File "/usr/local/lib/python2.7/dist-packages/django/forms/widgets.py" in render_options
554. for option_value, option_label in chain(self.choices, choices):
File "/usr/local/lib/python2.7/dist-packages/django/forms/models.py" in __iter__
1110. yield self.choice(obj)
File "/usr/local/lib/python2.7/dist-packages/django/forms/models.py" in choice
1117. return (self.field.prepare_value(obj), self.field.label_from_instance(obj))
File "/usr/local/lib/python2.7/dist-packages/django/forms/models.py" in label_from_instance
1180. return smart_text(obj)
File "/usr/local/lib/python2.7/dist-packages/django/utils/encoding.py" in smart_text
42. return force_text(s, encoding, strings_only, errors)
File "/usr/local/lib/python2.7/dist-packages/django/utils/encoding.py" in force_text
80. s = six.text_type(bytes(s), encoding, errors)
Exception Type: UnicodeEncodeError at /admin/messaging/thread/2/change/
Exception Value: 'ascii' codec can't encode character u'\xc5' in position 35: ordinal not in range(128)
@python_2_unicode_compatible
class Thread(models.Model):
...
class Tour(models.Model):
...
def __str__(self):
return "{0} by {1}".format(self.tour_name.encode('utf8'), self.tour_guide)
def __str__(self):
return u"{0} by {1}".format(self.tour_name, self.tour_guide)