2016-08-09 6 views
2

Ich habe folgendes Modell:verketten Django das Ergebnis __unicode__ und Stringliteral

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

Die Ansicht

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

einfach meinen Kopf verschiedene Möglichkeiten versucht brach. Irgendwelche Ideen, wie man es repariert?

Antwort

3

Sie müssen die Funktion unicode() aufrufen, um Ihr Objekt zu konvertieren, in diesem Fall mein_Modell in einer Unicode-Zeichenfolge.

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

Oder Sie könnten eine sauberere Art und Weise verwenden:

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

Die my_model Variable ist eine Instanz des Modells MyModel, sollten Sie tun:

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

Das Ergebnis __unicode__ Methode ist eine Darstellung des Modells Instanz, die Sie in Ihrem Admin sehen können.

Verwandte Themen