2013-03-09 67 views
1

我正在研究一個簡單的應用程序,並且我剛剛添加了一個名爲Picture的新模塊到我的models.py。當我嘗試訪問管理頁面上的Person模塊時,我收到此錯誤。我已經做了刪除我的數據庫,並執行syncdbDjango強制轉換爲Unicode:需要字符串或緩衝區,找不到類型

當我點擊其他模塊,比如圖片和寵物上,這是成功的,但是當我在人點擊在管理頁面我收到此錯誤

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

請同時粘貼你的'admin.py'。 – okm 2013-03-09 04:20:24

+0

@okm我粘貼了它 – donkeyboy72 2013-03-09 04:23:55

回答

9

檢查是否有具有name任何Person對象值爲None
還可以更好地從Person模型的name字段中刪除null=True配置。這是not a good practiceCharFieldnullable

>>> class Foo(object): 
...  name = None 
...  def __unicode__(self): 
...   return self.name 
>>> unicode(Foo()) 
TypeError: coercing to Unicode: need string or buffer, NoneType found 
+0

我從來不會這可能是原因,但我確實有Person對象的名稱爲None – donkeyboy72 2013-03-09 06:09:53

+2

+1,以便在CharFields上使用'null = True'並不是一個好主意。 – 2013-03-09 13:46:28

相關問題