【问题标题】:values_list query is returning the foreign keys pk rather than it's valuevalues_list 查询返回的是外键 pk 而不是它的值
【发布时间】:2022-01-05 00:51:45
【问题描述】:

我正在尝试通过查询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的实际名称字符串?

【问题讨论】:

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

标签: python sql django


【解决方案1】:

正如@WillemVanOnsem 在 cmets 中所说,您没有访问相关对象 name 属性,您使用连接来执行此操作,而这在 ORM 中是这样完成的:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-22
    • 1970-01-01
    • 2017-04-22
    • 2022-12-04
    • 1970-01-01
    • 2016-02-05
    • 1970-01-01
    • 2020-08-20
    相关资源
    最近更新 更多