【问题标题】:admin page showing error in django管理页面在 django 中显示错误
【发布时间】:2017-09-16 16:10:30
【问题描述】:

/admin/student/user/ 处的类型错误 强制转换为 Unicode:需要字符串或缓冲区,找到元组

知道它是关于什么的吗?

admin.py

from django.contrib import admin

from .models import user

class userAdmin(admin.ModelAdmin):

    fieldsets=[
        (None,{'fields':['uid']}),
        (None,{'fields':['uname']}),
        (None,{'fields':['email']}),
        (None,{'fields':['password']}),
]


admin.site.register(user,userAdmin)

models.py

class user(models.Model):
    uid=models.IntegerField(unique=True,default=0)
    uname=models.CharField(max_length=50)
    email=models.EmailField()
    password=models.CharField(max_length=20)

def __unicode__(self):
    return self.uid,self.uname

class Meta:
    db_table="user"

【问题讨论】:

  • 您是否在模型中定义了__unicode__ 方法?
  • 是的,我做到了...!!!
  • 你能说明它是如何定义的吗?
  • 不要介意缩进……这是个问题……我已经在我的模型中做到了。
  • 您是否在管理员中为此模型定义了其他任何内容?

标签: python django


【解决方案1】:

__unicode__需要返回字符串。

变化:

def __unicode__(self):
    return self.uid,self.uname

进入

def __unicode__(self):
    return u"{} {}".format(self.uid, self.uname)

【讨论】: