0

python的新手,并试图用来__unicode_呈现字符串表示。该代码是 Django 模型的一部分。如何编写__unicode__MyType 以便在模板中将其表示形式输出为123 - 123 South ....

class UsAddress(models.Model):
    #other fields
    zip = us_models.USPostalCodeField()
    country = models.CharField(max_length=2)
    phone = us_models.PhoneNumberField()

    def __unicode__(self):
        return  self.zip + self.country + self.phone


class MyType(models.Model):
    code = models.IntegerField()
    address = UsAddress

    def __unicode__(self):
        return str(self.code) + " - " + unicode(self.address) #self.address.__unicode__()

输出:

 <MyType: 219 - <class 'web.models.UsAddress'>>

编辑

至少在我的情况下,问题是我没有为这种关系建模。所以我将它添加到 UsAddress。

mt = models.ForeignKey(MyType)
4

1 回答 1

2

试试这个:

class MyType(models.Model):
    code = models.IntegerField()
    address = UsAddress

    def __unicode__(self):
        return u'%s - %s' % (self.code, self.address)

这是unicode方法。

然后,您可以像这样在模板中使用它:

<p>My object: {{ mytype_obj }}</p>

输出将是:

我的对象:123 - 123 South ....

于 2012-09-12T14:59:33.700 回答