所以,当我去获取我的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我只是错过了一些小而不确定的东西......
谢谢你们!
答案 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)