1

私は単純なアプリに取り組んでおり、Picture という新しいモジュールを models.py に追加しました。管理ページで Person モジュールにアクセスしようとすると、このエラーが表示されます。私はすでにデータベースとsyncdbを削除しました

Picture や Pet などの他のモジュールをクリックすると、成功しましたが、管理ページで Person をクリックすると、このエラーが表示されます

私はいくつかの調査を行い、1 つの解決策は有効な 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)
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 に答える