显示 python 对象名称

Show python object name

在 django 管理页面中,所有内容都只显示 'xxx object' 而不是 我在模型中写的名字:

class categoria(models.Model):
    nomeCategoria = models.CharField(max_length=50)
    imagemCategoria = models.CharField(max_length=200)

def __str__(self):
   return self.nomeCategoria

class post(models.Model):
    tituloPost = models.CharField(max_length=200,default='tituloPost')
    textoPost = models.TextField()
    textoTagPost = models.TextField()
    categoria = models.ForeignKey(categoria)
    enviadoNewsletter = models.BooleanField(default=False)

def __str__(self):
   return 'Post: ' + self.tituloPost    

我正在使用 python 3.4

我也试过把这段代码放在admin.py:

class categoriaAdmin(admin.ModelAdmin):
    list_display = ('nomeCategoria','imagemCategoria')

admin.site.register(categoria, categoriaAdmin)

但这只会在列表中显示正确的名称。 我认为 str 的意义在于到处显示正确的字段,还是我错了?

我是新来的,抱歉我的英语不好,希望有人能帮忙。

str 或更好 unicode 需要适当间隔,以便 class 有方法,而不是模块。此外,您应该为模型 classes(即 class 类别)

使用标题
class categoria(models.Model):
    nomeCategoria = models.CharField(max_length=50)
    imagemCategoria = models.CharField(max_length=200)

    def __str__(self):
       return self.nomeCategoria

class post(models.Model):
    tituloPost = models.CharField(max_length=200,default='tituloPost')
    textoPost = models.TextField()
    textoTagPost = models.TextField()
    categoria = models.ForeignKey(categoria)
    enviadoNewsletter = models.BooleanField(default=False)

    def __str__(self):
       return 'Post: ' + self.tituloPost