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
Previous snippet
Using QuerySet order_by()
Next snippet