Django连接__unicode__和字符串文字

时间:2016-08-09 16:19:39

标签: django

我有以下型号:

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

试图尝试各种选择时,我的脑袋一下子。任何想法如何解决它?

2 个答案:

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

答案 1 :(得分:0)

my_model变量是模型MyModel的一个实例,你应该这样做:

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

__unicode__方法的结果是您可以在管理员中看到的模型实例的表示。