Django'强制转换为Unicode:需要字符串或缓冲区,找到NoneType

时间:2013-03-09 03:27:48

标签: django

我正在开发一个简单的应用程序,我刚刚为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)

1 个答案:

答案 0 :(得分:9)

检查是否有Personname Nonenull=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}}