> For the complete documentation index, see [llms.txt](https://olee-tech.gitbook.io/django/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://olee-tech.gitbook.io/django/django-orm/basic-database-operation/annotation.md).

# Annotation

**Annotation:** Annotation is used to add extra information to each record in a queryset. You can add calculated fields to the records in the queryset without changing the underlying data in the database.

Let's say we want to annotate each `Order` object with the number of items in that order:

```
from django.db.models import F
from myapp.models import Order, OrderItem

# Annotate each order with the count of items
orders_with_item_count = Order.objects.annotate(item_count=Count('orderitem'))

for order in orders_with_item_count:
    print(f"Order #{order.id} has {order.item_count} items.")

```

In this example, we're using the `annotate` method to add an `item_count` field to each `Order` object. This field is calculated based on the related `OrderItem` records associated with each order.

<br>
