Запрос values_list возвращает внешний ключ pk, а не его значение

Я пытаюсь получить все категории, используемые в настоящее время в Recipes без дубликатов, путем запроса CategoryToRecipe.

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 возвращает числа, которые, как я предполагаю, являются ID для Category, а не названия (например, Обед, Ужин и т.д.).

Как получить фактическую строку имени Category?

Как сказал @WillemVanOnsem в комментариях, вы не обращаетесь к атрибуту related object name вы делаете это с помощью joins, что делается в ORM следующим образом:

query_set = CategoryToRecipe.objects.values_list('name__name', flat=True).distinct()
Вернуться на верх