# Basic Queries
MyModel.objects.create(field1=value1, field2=value2)
MyModel.objects.all()
MyModel.objects.filter(field=value)
MyModel.objects.get(field=value)
MyModel.objects.exclude(field=value)
# Querying with Conditions
MyModel.objects.filter(field1=value1).filter(field2=value2)
from django.db.models import Q
MyModel.objects.filter(Q(field1=value1) | Q(field2=value2))
from django.db.models import Count
MyModel.objects.annotate(num_related=Count('related_model'))
from django.db.models import Avg
MyModel.objects.aggregate(Avg('field'))
# Ordering and Slicing
MyModel.objects.order_by('field')
MyModel.objects.order_by('-field')
MyModel.objects.all()[:5]
# Advanced Queries
MyModel.objects.select_related('related_model')
MyModel.objects.prefetch_related('related_model')
MyModel.objects.values('field1', 'field2')
MyModel.objects.values_list('field1', flat=True)
# Existence Checks
MyModel.objects.filter(field=value).exists()
# Counting and Aggregating
MyModel.objects.count()
MyModel.objects.aggregate(Sum('field'))
# Updates and Deletes
MyModel.objects.filter(field=value).update(field2=new_value)
MyModel.objects.filter(field=value).delete()
# Other Useful Queries
MyModel.objects.distinct('field')
MyModel.objects.raw('SELECT * FROM myapp_mymodel WHERE field = %s', [value])
# Complex Queries
from django.db.models import OuterRef, Subquery
subquery = MyModel.objects.filter(field=OuterRef('related_field'))
MyModel.objects.filter(field__in=Subquery(subquery.values('id')))
# Aggregation Examples
MyModel.objects.aggregate(
avg_field=Avg('field'),
total_field=Sum('field'),
count_field=Count('id')
)
# Using F Expressions
from django.db.models import F
MyModel.objects.filter(field=value).update(field2=F('field2') + 1)
# Performing Transactions
from django.db import transaction
with transaction.atomic():
MyModel.objects.create(field=value)
MyModel.objects.create(field=value2)
## All commands for django app
No comments:
Post a Comment