Python Django Admin:TypeError:\uuuuu str\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
我有一个正常运行的Django站点和一个正常运行的admin站点,但当我尝试使用admin站点从模型“Article”创建新对象时除外。当我尝试创建新的“Article”时,我遇到以下错误:Python Django Admin:TypeError:\uuuuu str\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu,python,django,Python,Django,我有一个正常运行的Django站点和一个正常运行的admin站点,但当我尝试使用admin站点从模型“Article”创建新对象时除外。当我尝试创建新的“Article”时,我遇到以下错误: TypeError at /admin/blog/article/add/ __str__ returned non-string (type FieldFile) Exception Type: TypeError Exception Value: __str__ returned non
TypeError at /admin/blog/article/add/
__str__ returned non-string (type FieldFile)
Exception Type: TypeError
Exception Value: __str__ returned non-string (type FieldFile)
Exception Location: /home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/utils/encoding.py in force_text, line 90
奇怪的是,今天早上它还在工作。我试图安装django markdown,但我开始出现这个错误。我无法让它工作,所以我卸载了django markdown,并将所有代码恢复为原始代码(以前的功能),并进行了相应的迁移
但我还是发现了错误
以下是回溯和渲染错误:
Error during template rendering
In template /home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/contrib/admin/templates/admin/includes/fieldset.html, error at line 19
__str__ returned non-string (type FieldFile)
9 {% for field in line %}
10 <div{% if not line.fields|length_is:'1' %} class="field-box{% if field.field.name %} field-{{ field.field.name }}{% endif %}{% if not field.is_readonly and field.errors %} errors{% endif %}{% if field.field.is_hidden %} hidden{% endif %}"{% elif field.is_checkbox %} class="checkbox-row"{% 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.help_text %}
23 <p class="help">{{ field.field.help_text|safe }}</p>
24 {% endif %}
25 </div>
26 {% endfor %}
27 </div>
28 {% endfor %}
29 </fieldset>
Traceback Switch to copy-and-paste view
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/core/handlers/base.py in get_response
response = response.render()
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/template/response.py in render
self.content = self.rendered_content
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/template/response.py in rendered_content
content = template.render(context, self._request)
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/template/backends/django.py in render
return self.template.render(context)
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/template/base.py in render
return self._render(context)
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/template/base.py in _render
return self.nodelist.render(context)
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/template/base.py in render
bit = self.render_node(node, context)
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/template/debug.py in render_node
return node.render(context)
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/template/loader_tags.py in render
return compiled_parent._render(context)
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/template/base.py in _render
return self.nodelist.render(context)
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/template/base.py in render
bit = self.render_node(node, context)
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/template/debug.py in render_node
return node.render(context)
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/template/loader_tags.py in render
return compiled_parent._render(context)
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/template/base.py in _render
return self.nodelist.render(context)
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/template/base.py in render
bit = self.render_node(node, context)
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/template/debug.py in render_node
return node.render(context)
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/template/loader_tags.py in render
result = block.nodelist.render(context)
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/template/base.py in render
bit = self.render_node(node, context)
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/template/debug.py in render_node
return node.render(context)
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/template/loader_tags.py in render
result = block.nodelist.render(context)
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/template/base.py in render
bit = self.render_node(node, context)
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/template/debug.py in render_node
return node.render(context)
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/template/defaulttags.py in render
nodelist.append(node.render(context))
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/template/loader_tags.py in render
return template.render(context)
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/template/base.py in render
return self._render(context)
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/template/base.py in _render
return self.nodelist.render(context)
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/template/base.py in render
bit = self.render_node(node, context)
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/template/debug.py in render_node
return node.render(context)
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/template/defaulttags.py in render
nodelist.append(node.render(context))
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/template/defaulttags.py in render
nodelist.append(node.render(context))
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/template/defaulttags.py in render
return nodelist.render(context)
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/template/base.py in render
bit = self.render_node(node, context)
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/template/debug.py in render_node
return node.render(context)
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/template/defaulttags.py in render
return nodelist.render(context)
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/template/base.py in render
bit = self.render_node(node, context)
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/template/debug.py in render_node
return node.render(context)
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/template/debug.py in render
output = force_text(output)
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/utils/encoding.py in force_text
s = six.text_type(s)
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/utils/html.py in <lambda>
klass.__str__ = lambda self: mark_safe(klass_str(self))
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/forms/forms.py in __str__
return self.as_widget()
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/forms/forms.py in as_widget
return force_text(widget.render(name, self.value(), attrs=attrs))
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/contrib/admin/widgets.py in render
'widget': self.widget.render(name, value, *args, **kwargs),
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/forms/widgets.py in render
options = self.render_options(choices, value)
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/forms/widgets.py in render_options
for option_value, option_label in chain(self.choices, choices):
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/forms/models.py in __iter__
yield self.choice(obj)
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/forms/models.py in choice
return (self.field.prepare_value(obj), self.field.label_from_instance(obj))
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/forms/models.py in label_from_instance
return smart_text(obj)
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/utils/encoding.py in smart_text
return force_text(s, encoding, strings_only, errors)
...
▶ Local vars
/home/USERNAME/webapps/APPNAME/lib/python3.4/Django-1.8.2-py3.4.egg/django/utils/encoding.py in force_text
s = six.text_type(s)
...
▶ Local vars
admin.py:
from django.contrib import admin
from blog.models import Article, Tag, Author, ArticleCategory, ArticleImage
# Register your models here.
admin.site.register(Article)
admin.site.register(Author)
admin.site.register(Tag)
admin.site.register(ArticleCategory)
admin.site.register(ArticleImage)
我几乎想卸载,然后用当前的设置重新开始整个过程,但我更愿意找出我搞砸了什么,然后修复它
非常感谢您的帮助
马特如果看不到局部变量,就很难诊断问题。某处的一个模型返回一个
字段文件
,而不是一个字符串,当它被调用为admin中的一个小部件提供选项标签时,选择我认为
检查模型上的str方法。有
文件字段的人可能是罪魁祸首。但错误是“FieldFile”而不是“FileField”。它们是一样的吗?“当您访问模型上的文件字段时,会给您一个FieldFile实例作为访问基础文件的代理”,从而修复了它。这是在我遇到django markdown安装引起的bug时发生的,所以我将其归因于此。我将string方法更改为图像标题,现在效果很好。
from django.contrib import admin
from blog.models import Article, Tag, Author, ArticleCategory, ArticleImage
# Register your models here.
admin.site.register(Article)
admin.site.register(Author)
admin.site.register(Tag)
admin.site.register(ArticleCategory)
admin.site.register(ArticleImage)