因此,当我获取 html 页面测量的 View 页面时,“类别”列应显示“西部”、“东部”或“火山”类别的名称。但目前它仅显示类别对象。如果有多个类别对象,则将其显示为类别对象,类别对象而不是西、东
这是我的模型:
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)
我做错了什么? defcategory_names 位于我的区域模型下,因此 self.id 来自区域。我确信这与我的职能有关。总是当谈到 django 时,我只是错过了一些小东西,但不确定是什么......
谢谢大家!
最佳答案
您需要将 __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)
关于python - Django 项目发送回类别对象而不是该类别的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36652026/