我在django models.Model的unicode表示中有以下代码:
def __unicode__(self):
if self.right:
return u"{left} ({left_score}) | {right} ({right_score})".format({
'left': self.left,
'left_score': self.left_score,
'right': self.right,
'right_score': self.right_score,
})
else:
return "%s" % self.left
我得到了
Exception Type: KeyError
Exception Value: u'left'
我也尝试在字典中使用unicode键。 self.left不是None 我看过很多论坛仍然无法弄清楚我做错了什么。 :(
我该如何解决这个问题?
答案 0 :(得分:4)
format
方法要求您将参数作为kwargs传递,而不是作为字典传递。
def __unicode__(self):
if self.right:
return u"{left} ({left_score}) | {right} ({right_score})".format(
left=self.left,
left_score=self.left_score,
right=self.right,
right_score=self.right_score,
)
else:
return "%s" % self.left
答案 1 :(得分:1)
您还可以解压缩存储的字典:
left, right = 'L', 'R'
left_score, right_score = "LS", "RS"
print u"{left} ({left_score}) | {right} ({right_score})".format(**{
'left': left,
'left_score': left_score,
'right': right,
'right_score': right_score,
})
出:L (LS) | R (RS)