Python 强制使用Unicode:需要字符串或缓冲区,在django admin中呈现时发现非类型
我很长时间以来都有这个错误,但我无法找出它: 呈现时捕获到TypeError:强制使用Unicode:需要字符串或缓冲区,未找到NoneType 当我尝试在我的一个模型上添加或修改时,它发生在管理中(显示工作正常) 这就是模型:Python 强制使用Unicode:需要字符串或缓冲区,在django admin中呈现时发现非类型,python,django,django-admin,Python,Django,Django Admin,我很长时间以来都有这个错误,但我无法找出它: 呈现时捕获到TypeError:强制使用Unicode:需要字符串或缓冲区,未找到NoneType 当我尝试在我的一个模型上添加或修改时,它发生在管理中(显示工作正常) 这就是模型: class PS(models.Model): id_ps = models.IntegerField(null=True) client = models.ForeignKey(Client, null=True, blank=True) no
class PS(models.Model):
id_ps = models.IntegerField(null=True)
client = models.ForeignKey(Client, null=True, blank=True)
nom_du_site = models.CharField(max_length=250)
rue_livraison = models.TextField(null=True)
complement_adresse = models.TextField(null=True)
code_postal_livraison = models.CharField(max_length=50, null=True)
ville_livraison = models.CharField(max_length=200, null=True)
pays_livraison = models.CharField(max_length=200, null=True)
distributeur = models.CharField(max_length=50, null=True)
tarif = models.CharField(max_length=250, null=True)
type_tarif = models.CharField(max_length=50, null=True)
type_installation = models.CharField(max_length=50, null=True)
def __unicode__(self):
return self.nom_du_site
@property
def pce(self):
try:
return PCE.objects.filter(ps=self)[0]
except IndexError:
return
#
def get_pce(self):
from pce.models import PCE
return PCE.objects.filter(ps=self).exclude(frequence='6M')
#
def get_pce_6m(self):
from pce.models import PCE
return PCE.objects.filter(ps=self,frequence='6M')
知道我做错了什么吗
回溯:
Environment:
Request Method: GET
Request URL: http://127.0.0.1:8026/admin/ps/ps/add/
Django Version: 1.2.5
Python Version: 2.7.2
Installed Applications:
['django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.admin',
'easy_thumbnails',
'django_extensions',
'contentadmin',
'south',
'sentry',
'sentry.client',
'indexer',
'file_uploader',
'paging',
'pagination',
'consommation',
'ps',
'pce',
'profil',
'analytics',
'document']
Installed Middleware:
('annoying.middlewares.StaticServe',
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'pagination.middleware.PaginationMiddleware')
Template error:
In template /usr/local/lib/python2.7/dist-packages/django/contrib/admin/templates/admin/includes/fieldset.html, error at line 19
Caught TypeError while rendering: coercing to Unicode: need string or buffer, NoneType found
9 : {% for field in line %}
10 : <div{% if not line.fields|length_is:'1' %} class="field-box{% if not field.is_readonly and field.errors %} errors{% endif %}"{% endif %}>
11 : {% if not line.fields|length_is:'1' and not field.is_readonly %}{{ field.errors }}{% endif %}
12 : {% if field.is_checkbox %}
13 : {{ field.field }}{{ field.label_tag }}
14 : {% else %}
15 : {{ field.label_tag }}
16 : {% if field.is_readonly %}
17 : <p>{{ field.contents }}</p>
18 : {% else %}
19 : {{ field.field }}
20 : {% endif %}
21 : {% endif %}
22 : {% if field.field.field.help_text %}
23 : <p class="help">{{ field.field.field.help_text|safe }}</p>
24 : {% endif %}
25 : </div>
26 : {% endfor %}
27 : </div>
28 : {% endfor %}
29 : </fieldset>
Traceback:
File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response
100. response = callback(request, *callback_args, **callback_kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/options.py" in wrapper
288. return self.admin_site.admin_view(view)(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/utils/decorators.py" in _wrapped_view
76. response = view_func(request, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/views/decorators/cache.py" in _wrapped_view_func
78. response = view_func(request, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/sites.py" in inner
190. return view(request, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/utils/decorators.py" in _wrapper
21. return decorator(bound_func)(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/utils/decorators.py" in _wrapped_view
76. response = view_func(request, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/utils/decorators.py" in bound_func
17. return func(self, *args2, **kwargs2)
File "/usr/local/lib/python2.7/dist-packages/django/db/transaction.py" in _commit_on_success
299. res = func(*args, **kw)
File "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/options.py" in add_view
909. return self.render_change_form(request, context, form_url=form_url, add=True)
File "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/options.py" in render_change_form
692. ], context, context_instance=context_instance)
File "/usr/local/lib/python2.7/dist-packages/django/shortcuts/__init__.py" in render_to_response
20. return HttpResponse(loader.render_to_string(*args, **kwargs), **httpresponse_kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/template/loader.py" in render_to_string
186. return t.render(context_instance)
File "/usr/local/lib/python2.7/dist-packages/django/template/__init__.py" in render
173. return self._render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/__init__.py" in _render
167. return self.nodelist.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/__init__.py" in render
796. bits.append(self.render_node(node, context))
File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py" in render_node
72. result = node.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py" in render
125. return compiled_parent._render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/__init__.py" in _render
167. return self.nodelist.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/__init__.py" in render
796. bits.append(self.render_node(node, context))
File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py" in render_node
72. result = node.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py" in render
125. return compiled_parent._render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/__init__.py" in _render
167. return self.nodelist.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/__init__.py" in render
796. bits.append(self.render_node(node, context))
File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py" in render_node
72. result = node.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py" in render
62. result = block.nodelist.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/__init__.py" in render
796. bits.append(self.render_node(node, context))
File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py" in render_node
72. result = node.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/defaulttags.py" in render
174. nodelist.append(node.render(context))
File "/usr/local/lib/python2.7/dist-packages/django/template/loader_tags.py" in render
139. return self.template.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/__init__.py" in render
173. return self._render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/__init__.py" in _render
167. return self.nodelist.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/__init__.py" in render
796. bits.append(self.render_node(node, context))
File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py" in render_node
72. result = node.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/defaulttags.py" in render
174. nodelist.append(node.render(context))
File "/usr/local/lib/python2.7/dist-packages/django/template/defaulttags.py" in render
174. nodelist.append(node.render(context))
File "/usr/local/lib/python2.7/dist-packages/django/template/defaulttags.py" in render
260. return self.nodelist_false.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/__init__.py" in render
796. bits.append(self.render_node(node, context))
File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py" in render_node
72. result = node.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/defaulttags.py" in render
260. return self.nodelist_false.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/__init__.py" in render
796. bits.append(self.render_node(node, context))
File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py" in render_node
72. result = node.render(context)
File "/usr/local/lib/python2.7/dist-packages/django/template/debug.py" in render
91. output = force_unicode(output)
File "/usr/local/lib/python2.7/dist-packages/django/utils/encoding.py" in force_unicode
66. s = unicode(s)
File "/usr/local/lib/python2.7/dist-packages/django/forms/forms.py" in __unicode__
408. return self.as_widget()
File "/usr/local/lib/python2.7/dist-packages/django/forms/forms.py" in as_widget
450. return widget.render(name, data, attrs=attrs)
File "/usr/local/lib/python2.7/dist-packages/django/contrib/admin/widgets.py" in render
247. output = [self.widget.render(name, value, *args, **kwargs)]
File "/usr/local/lib/python2.7/dist-packages/django/forms/widgets.py" in render
447. options = self.render_options(choices, [value])
File "/usr/local/lib/python2.7/dist-packages/django/forms/widgets.py" in render_options
464. for option_value, option_label in chain(self.choices, choices):
File "/usr/local/lib/python2.7/dist-packages/django/forms/models.py" in __iter__
898. yield self.choice(obj)
File "/usr/local/lib/python2.7/dist-packages/django/forms/models.py" in choice
904. 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
955. return smart_unicode(obj)
File "/usr/local/lib/python2.7/dist-packages/django/utils/encoding.py" in smart_unicode
39. return force_unicode(s, encoding, strings_only, errors)
File "/usr/local/lib/python2.7/dist-packages/django/utils/encoding.py" in force_unicode
66. s = unicode(s)
Exception Type: TemplateSyntaxError at /admin/ps/ps/add/
Exception Value: Caught TypeError while rendering: coercing to Unicode: need string or buffer, NoneType found
环境:
请求方法:获取
请求URL:http://127.0.0.1:8026/admin/ps/ps/add/
Django版本:1.2.5
Python版本:2.7.2
已安装的应用程序:
['django.contrib.auth',
“django.contrib.contenttypes”,
“django.contrib.sessions”,
“django.contrib.sites”,
“django.contrib.messages”,
“django.contrib.admin”,
“简易缩略图”,
“django_扩展”,
“contentadmin”,
“南方”,
“哨兵”,
“哨兵,客户”,
“索引器”,
“文件上传器”,
"传呼",,
“分页”,
"合并",,
“ps”,
"个人消费开支",,
“profil”,
“分析”,
“文件”]
已安装的中间件:
(“烦人的.中间产品.静态服务”,
'django.middleware.common.CommonMiddleware',
“django.contrib.sessions.middleware.SessionMiddleware”,
“django.middleware.csrf.CsrfViewMiddleware”,
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'pagination.middleware.PaginationMiddleware')
模板错误:
在template/usr/local/lib/python2.7/dist-packages/django/contrib/admin/templates/admin/includes/fieldset.html中,第19行出现错误
呈现时捕获到TypeError:强制为Unicode:需要字符串或缓冲区,未找到NoneType
9:{第%行中的字段为%}
10 :
11:{%if not line.fields{124; length_是:'1'而不是field.is_readonly%}{{field.errors}{%endif%}
12:{%if field.is_checkbox%}
13:{field.field}{{field.label_tag}}
14:{%else%}
15:{field.label_tag}}
16:{%if field.is_readonly%}
17:{{field.contents}
18:{%else%}
19:{field.field}
20:{%endif%}
21:{%endif%}
22:{%if-field.field.field.help_text%}
23:{{field.field.field.help_text|safe}
24:{%endif%}
25 :
26:{%endfor%}
27 :
28:{%endfor%}
29 :
回溯:
get_响应中的文件“/usr/local/lib/python2.7/dist packages/django/core/handlers/base.py”
100响应=回调(请求,*回调参数,**回调参数)
包装器中的文件“/usr/local/lib/python2.7/dist packages/django/contrib/admin/options.py”
288返回self.admin\u site.admin\u视图(视图)(*args,**kwargs)
视图中的文件“/usr/local/lib/python2.7/dist packages/django/utils/decorators.py”
76响应=查看功能(请求,*args,**kwargs)
文件“/usr/local/lib/python2.7/dist packages/django/views/decorators/cache.py”
78响应=查看功能(请求,*args,**kwargs)
文件“/usr/local/lib/python2.7/dist packages/django/contrib/admin/sites.py”
190返回视图(请求、*args、**kwargs)
包装器中的文件“/usr/local/lib/python2.7/dist-packages/django/utils/decorators.py”
21返回装饰符(绑定函数)(*args,**kwargs)
视图中的文件“/usr/local/lib/python2.7/dist packages/django/utils/decorators.py”
76响应=查看功能(请求,*args,**kwargs)
绑定函数中的文件“/usr/local/lib/python2.7/dist packages/django/utils/decorators.py”
17返回函数(self,*args2,**kwargs2)
文件“/usr/local/lib/python2.7/dist packages/django/db/transaction.py”,在成功提交时
299res=func(*参数,**kw)
添加视图中的文件“/usr/local/lib/python2.7/dist packages/django/contrib/admin/options.py”
909返回self.render\u change\u form(请求、上下文、form\u url=form\u url、add=True)
文件“/usr/local/lib/python2.7/dist packages/django/contrib/admin/options.py”,格式为render\u change\u
692. ], 上下文,上下文\实例=上下文\实例)
render_to_响应中的文件“/usr/local/lib/python2.7/dist packages/django/shortcuts/_init__u.py”
20返回HttpResponse(loader.render_to_string(*args,**kwargs),**HttpResponse_kwargs)
render_to_字符串中的文件“/usr/local/lib/python2.7/dist packages/django/template/loader.py”
186返回t.render(上下文\实例)
render中的文件“/usr/local/lib/python2.7/dist-packages/django/template/_init__.py”
173返回self.\u呈现(上下文)
文件“/usr/local/lib/python2.7/dist packages/django/template/\uuuuu init\uuuuu.py”位于
167返回self.nodelist.render(上下文)
render中的文件“/usr/local/lib/python2.7/dist-packages/django/template/_init__.py”
796bits.append(self.render_节点(节点,上下文))
render_节点中的文件“/usr/local/lib/python2.7/dist packages/django/template/debug.py”
72结果=node.render(上下文)
render中的文件“/usr/local/lib/python2.7/dist packages/django/template/loader_tags.py”
125返回编译的\u父对象。\u呈现(上下文)
文件“/usr/local/lib/python2.7/dist packages/django/template/\uuuuu init\uuuuu.py”位于
167返回self.nodelist.render(上下文)
文件“
def __unicode__(self):
return '%s' % self.id
def __unicode__(self):
return self.some_field or u'None'
class Author(models.Model):
. . .
name = models.CharField(...)
class Book(models.Model):
. . .
author = models.ForeignKey(Author, ...)
. . .
def __unicode__(self):
return self.author # <<<<<<<< this causes problems
class Book(models.Model):
. . .
def __unicode__(self):
return unicode(self.author) # <<<<<<<< this is OK
def __str__(self):
return self.some_field
def __unicode__(self):
return unicode(self.nom_du_site)