values_list查询返回外键 pk 而不是其值



我正试图通过查询CategoryToRecipe来获得Recipes中当前使用的所有类别,而不存在任何重复。

class Category(models.Model):
name = models.CharField(max_length=50, null=True, blank=True)

def __str__(self):
return self.name
class CategoryToRecipe(models.Model):
recipe = models.ForeignKey(Recipe, on_delete=models.CASCADE)
name = models.ForeignKey(Category, null=True, on_delete=models.SET_NULL)

query_set = CategoryToRecipe.objects.values_list('name', flat=True).distinct()

query_set是返回数字,我认为这是CategoryID,而不是名称(例如午餐、晚餐等(。

如何获取Category的实际名称字符串?

正如@WillemVanOnsem在评论中所说,您没有访问相关对象name属性,而是使用联接来访问,这在ORM中是这样完成的:

query_set = CategoryToRecipe.objects.values_list('name__name', flat=True).distinct()

最新更新