我正在开发一个简单的应用程序,我刚刚为models.py添加了一个名为Picture的新模块。当我尝试在管理页面访问Person模块时,我收到此错误。我已经删除了我的数据库和syncdb
当我点击图片和宠物等其他模块时,它成功了,但当我在管理页面点击人员时,我收到此错误
我做了一些研究,一个解决方案是返回一个有效的unicode。我想,我做到了
TypeError at /admin/pet/person/
coercing to Unicode: need string or buffer, NoneType found
Request Method: GET
Django Version: 1.4.3
Exception Type: TypeError
Exception Value:
coercing to Unicode: need string or buffer, NoneType found
In template C:\Python26\lib\site-packages\django\contrib\admin\templates\admin\change_list.html, error at line 93
{% result_list cl %}
问题与我的modules.py
有关from django.db import models
from django.db.models.signals import post_save
from django.contrib.auth.models import User
class Person(models.Model):
user = models.ForeignKey(User)
name = models.CharField(max_length=100,blank=True,null=True)
def __unicode__(self):
return self.name
class Picture(models.Model):
user = models.ForeignKey(Person)
image = models.FileField(upload_to="images/",blank=True,null=True)
name = models.CharField(max_length=100,blank=True,null=True)
def __unicode__(self):
return self.name
class Pet(models.Model):
Person = models.ForeignKey(Person)
description = models.CharField(max_length=100)
image = models.FileField(upload_to="images/",blank=True,null=True)
def __unicode__(self):
return self.description
我的admin.py
from django.contrib import admin
from pet.models import *
admin.site.register(Person)
admin.site.register(Pet)
admin.site.register(Picture)
答案 0 :(得分:9)
检查是否有Person
个name
None
个null=True
值的对象
还最好从name
模型的Person
字段中删除CharField
配置。让nullable
成为>>> class Foo(object):
... name = None
... def __unicode__(self):
... return self.name
>>> unicode(Foo())
TypeError: coercing to Unicode: need string or buffer, NoneType found
是not a good practice。
{{1}}