Using QuerySet values()

A snippet showing how to use values() for dictionary-style results.


# models.py

from django.db import models

class Employee(models.Model):
    name = models.CharField(max_length=120)
    department = models.CharField(max_length=50)
    salary = models.DecimalField(max_digits=10, decimal_places=2)

    def __str__(self):
        return self.name
  

# Django Shell

>>> from company.models import Employee
>>> Employee.objects.create(name='Alice', department='HR', salary=50000)
>>> Employee.objects.create(name='Bob', department='IT', salary=60000)
>>> Employee.objects.values('name', 'salary')
<QuerySet [{'name': 'Alice', 'salary': Decimal('50000.00')}, {'name': 'Bob', 'salary': Decimal('60000.00')}]>
>>> Employee.objects.values_list('name', flat=True)
<QuerySet ['Alice', 'Bob']>
  
Explanation:
  • values() returns dictionaries with field names as keys and field values as values.
  • values_list() gives tuples or flat lists, which is handy when only one field is needed.
  • These methods are efficient when you don't need full model instances, just raw field values.
  • Often used for exporting data, building APIs, or lightweight queries in templates.
  • Category Models & ORM
  • Total Views 384
  • Last Modified 22 November, 2025
  • Tags #queryset #values #orm #models
Never miss a story on Django.wiki

Subscribe for fresh tutorials, snippets, and updates.

By subscribing you agree to our Privacy Policy.