pythonunicode码是什么_python __unicode__这个的作用是什么啊?

谢邀

其实楼上@InjetLee 说的基本很到位了,具体到Django中,在 Models中定义这个__unicode__(python3为__str__)方法与否,最直接的感受就是你访问admin所看到的内容是否友好。

下面,举个栗子:

class Question(models.Model):

question_text = models.CharField('question text', max_length=200)

pub_date = models.DateTimeField('date published')

class Meta:

verbose_name = 'question'

verbose_name_plural = verbose_name

ordering = ['-id']

def __str__(self):

return self.question_text

上面的models来自django官方教程,在上面的models中,我定义了一个名为Question的models,此时,访问django的后台admin,看到的内容是这样的

bVzRc1

可以发现,Question看到的内容就是我们上面返回的self.question_text(如果你返回的是其它数据,则看到结果的会不同),那么,如果此时将上述代码注释掉,也就是变成下面这样,会发生什么呢?

class Question(models.Model):

question_text = models.CharField('question text', max_length=200)

pub_date = models.DateTimeField('date published')

class Meta:

verbose_name = 'question'

verbose_name_plural = verbose_name

ordering = ['-id']

#

# def __str__(self):

# return self.question_text

此时,再去后台admin里面查看Question,则变成了这样:

bVzRde

你定义的问题,看到的内容全部变为了Question object,这样的表示方式,对人来说,是相当的不友好的。

所以,以上,就是我所理解的__unicode__的作用,希望对你有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值