0

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)
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南...。

于 2012-09-12T14:59:33.700 に答える