如何将外键转换为值

时间:2017-01-25 15:13:27

标签: python django

我想用外键查询表。是否可以将外键替换为其值并将其转换为字典?

Model.py
class Category(models.Model):
    name = models.CharField(max_length=40)

class Item(models.Model):
    name = models.CharField(max_length=50)
    category = models.ForeignKey(Category)


Views.py
    dic = {}
    dic["data"] = list(Item.objects.all().values())

1 个答案:

答案 0 :(得分:1)

目前尚不清楚您在寻找什么。但我知道你需要一个结果,而不是ID,你得到类别的名称。 有两种方法。首先,更好的是将模型更改为:

class Category(models.Model):
    name = models.CharField(max_length=40)

    def __str__(self):
      return str(self.name)

使用此方法是一种更好的方法,每次都没有添加额外的行请求类别名称。 另一种是以这种方式查询:

Item.objects.all().values('name', 'category__id')