2016-08-09 11 views
2

の結果を連結し、私は次のモデルていますDjangoが__unicode__と文字列リテラル

class MyModel(models.Model): 
    # ... 
    class Meta: 
     managed = False 
     db_table = 'legal_entities' 
    def __unicode__(self): 
     return self.name_short 

ビュー

def my_view(response): 
    my_model = MyModel.objects.get(id = ...) 
    response = u'АБВГД + my_model #TypeError: coercing to Unicode: need   
           #string or buffer, LegalEntityOwn found 

ちょうどさまざまなオプションを試して、私の頭を壊しました。どのようにそれを修正するための任意のアイデア?

答えて

3

オブジェクトを変換するにはunicode()関数をコールする必要があります。この場合は、unicode文字列のmy_modelです。

def my_view(response): 
    my_model = MyModel.objects.get(id = ...) 
    response = u'АБВГД '+ unicode(my_model) 

それとも、クリーンな方法を使用できます。

def my_view(response): 
    my_model = MyModel.objects.get(id = ...) 
    response = u'АБВГД %s' % my_model 
0

my_model変数がモデルMyModelのインスタンスである、あなたが実行する必要があります。

response = u'АБВГД ' + my_model.short_name 

__unicode__方法の結果は、あなたがあなたの管理者に確認することができ、あなたのモデルインスタンスの表現です。

関連する問題