所以我目前正在阅读一个django + angular教程,其中我的模型unicode
函数就是这个
def __unicode__(self):
return '{0}'.format(self.content)
我的问题是为什么使用这个占位符是必要的?我可以做到这一点并取得同样的结果吗?
def __unicode__(self):
return self.content
content
是一个TextField
答案 0 :(得分:2)
从技术上讲,类可以选择格式化,但它需要:
>>> class A:
... def __format__(self, format_spec):
... return 'foo'
... def __str__(self):
... return 'bar'
...
>>> str(A())
'bar'
>>> '{0}'.format(A())
'foo'
答案 1 :(得分:0)
在这种情况下使用.format()
的原因是始终以字符串的形式返回content
的值,无论它是什么。例如:
>>> '{0}'.format(1) # `int`
'1'
>>> '{0}'.format(1.01) # `float`
'1.01'
>>> '{0}'.format(u'Hello') # `unicode string`
'Hello'
如果不这样做,您最终会发送相同的值,保留实际content
的类型。
注意:我的回答是假设问题中存在拼写错误,您的意思是'{0}'.format(self.content)
而不是'{0}.format(self.content)'