Friday, July 12, 2024

Django Models all queries and commands

 # 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

# Basic Commands
python manage.py runserver              # Start development server
python manage.py startproject <name>   # Create new Django project
python manage.py startapp <app_name>   # Create new app
python manage.py check                 # Check for issues
python manage.py diffsettings          # Show differences from default settings

# Database & Migrations
python manage.py makemigrations         # Create migration files
python manage.py migrate                # Apply migrations
python manage.py showmigrations         # List migrations and status
python manage.py sqlmigrate <app> <id>  # Show SQL for a migration
python manage.py flush                  # Reset DB (delete all data)
python manage.py inspectdb              # Generate models from existing DB
python manage.py dbshell                # Open DB shell

# User Management
python manage.py createsuperuser        # Create admin user
python manage.py changepassword <user>  # Change user password

# Testing & Debugging
python manage.py test                   # Run tests
python manage.py shell                  # Django Python shell

# Static & Media Files
python manage.py collectstatic          # Collect static files
python manage.py clearsessions          # Clear expired sessions

# Deployment Support
python manage.py check --deploy         # Check deployment best practices

# Custom Commands
python manage.py <your_command>         # Run custom management command

No comments:

Post a Comment

virtual environment on python on Ubuntu

 # 1. Update system and install Python tools sudo apt update && sudo apt install python3-pip python3-venv -y # 2. Setup Django in a ...