1

我正在开发一个简单的应用程序,我刚刚在我的 models.py 中添加了一个名为 Picture 的新模块。当我尝试在管理页面访问 Person 模块时,我收到此错误。我已经删除了我的数据库和syncdb

当我单击其他模块(例如 Picture 和 Pet )时,它是成功的,但是当我在管理页面单击 Person 时,我收到此错误

我做了一些研究,一个解决方案是返回一个有效的 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

我的管理员.py

 from django.contrib import admin
 from pet.models import *

 admin.site.register(Person)
 admin.site.register(Pet)
 admin.site.register(Picture)
4

1 回答 1

9

检查是否有任何有价值的Person对象。最好从模型的字段中 删除配置。拥有存在不是一个好习惯。nameNone
null=TruenamePersonCharFieldnullable

>>> class Foo(object):
...     name = None
...     def __unicode__(self):
...         return self.name
>>> unicode(Foo())
TypeError: coercing to Unicode: need string or buffer, NoneType found
于 2013-03-09T05:05:22.250 回答