Django项目发回Category对象而不是该类别的名称

时间:2016-04-15 16:09:38

标签: python html django

所以,当我去获取我的html页面的视图页面时,“类别”列应显示“西方”,“东方”或“火山”类别的名称。但是目前它只是显示了Category对象。如果有多个类别对象,则它将其显示为类别对象,类别对象而不是West,East

以下是我的模特:

class Area(models.Model):
    id = models.IntegerField(primary_key=True)
    name = models.CharField(max_length=50)
    longitude = models.FloatField(max_length=100)
    latitude = models.FloatField(max_length=100) 

class Category(models.Model):
    id = models.IntegerField(primary_key=True)
    name = models.CharField(max_length=50)
    description = models.CharField(max_length=100)
    members = models.ManyToManyField('Area')

这是我获取数据的功能。

@property
    def category_names(self):
         result = Category.objects.filter(members__id=self.id)
         return ", ".join(str(res) for res in result)

我做错了什么? def category_names位于我的Area模型下,因此self.id来自area。我确定它与我的功能有关。总是说到django我只是错过了一些小而不确定的东西......

谢谢你们!

1 个答案:

答案 0 :(得分:1)

您需要将__unicode__方法添加到Category类:

 class Category(models.Model):
    id = models.IntegerField(primary_key=True)
    name = models.CharField(max_length=50)
    description = models.CharField(max_length=100)
    members = models.ManyToManyField('Area')

    def __unicode__(self):
        return self.name

或在构建列表时返回类别的名称:

return ", ".join(str(res.name) for res in result)