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

标签 python html django

因此,当我获取 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/

相关文章:

python - 尝试使用 pip 安装时出现 AttributeError

Python MySQL 和上下文管理器 : __exit__ Attribute error

java - 元标记中的 JSF 重定向

html - 在容器中包含固定元素

css - 定位 div 内的段落

python - django.db.utils.ProgrammingError : relation "django_site_domain_v2339b81_uniq" already exists

django - 无法使用 django-pipeline 缩小 html 文件

python - 我的 Hangman python 代码似乎陷入了无限循环?

Python 代码在 2.7 中编译,而不是在 3.2 中编译

python - djangorest框架中django过滤器后端的条件?