调用__unicode__方法

时间:2012-09-12 14:53:02

标签: python django

python新手,并尝试使用__unicode_呈现字符串表示。代码是Django模型的一部分。如何编写MyType的__unicode__,以便在模板中将其表示输出为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)

1 个答案:

答案 0 :(得分: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南......