deal_instance_name
Deal モデルの に Unicode の問題があるようです。
それは言います:
coercing to Unicode: need string or buffer, __proxy__ found
例外は次の行で発生します。
return smart_unicode(self.deal_type.deal_name) + _(u' - Set No.') + str(self.set)
削除すると行が機能smart_unicode(self.deal_type.deal_name)
しますが、なぜですか?
当時の Django 1.1 では、誰かがStackoverflowで同じ問題を抱えていunicode()
ましたsmart_unicode()
。
何が欠けているのでしょうか?
class Deal(models.Model):
def __init__(self, *args, **kwargs):
super(Deal, self).__init__(*args, **kwargs)
self.deal_instance_name = self.__unicode__()
deal_type = models.ForeignKey(DealType)
deal_instance_name = models.CharField(_(u'Deal Name'), max_length=100)
set = models.IntegerField(_(u'Set Number'))
def __unicode__(self):
return smart_unicode(self.deal_type.deal_name) + _(u' - Set No.') + smart_unicode(self.set)
class Meta:
verbose_name = _(u'Deal')
verbose_name_plural = _(u'Deals')
ディールタイプ:
class DealType(models.Model):
deal_name = models.CharField(_(u'Deal Name'), max_length=40)
deal_description = models.TextField(_(u'Deal Description'), blank=True)
def __unicode__(self):
return smart_unicode(self.deal_name)
class Meta:
verbose_name = _(u'Deal Type')
verbose_name_plural = _(u'Deal Types')