Posts

Showing posts from March, 2025

Mastering Django ORM Update Queries — From Basics to Pro Level

Updating data properly is just as important as selecting data. In this guide, you will learn how to update records correctly in Django ORM — from basic .save() usage to pro techniques like atomic updates, bulk updates, F expressions, and best practices! 📚 1. Basic Update Using .save() Fetch and modify a single object user = NewUser.objects.get(pk=1) user.email = 'newemail@example.com' user.save() ⚡ 2. Updating Specific Fields with .save(update_fields=[...]) user = NewUser.objects.get(pk=1) user.email = 'newemail@example.com' user.save(update_fields=['email']) 🎯 3. Updating Multiple Records at Once Using .update() NewUser.objects.filter(user_type=2).update(is_active=False) 🧠 4. .save() vs .update() — Key Differences Aspect .save() .update() Works on Single object QuerySet (multiple) Triggers signals? ✅ Yes ❌ No Auto-updates auto_now fields? ✅ Yes ❌ No Custom logic inside save() runs? ✅ Yes ❌ No Speed for bulk ❌ Slow ✅ Fast 🔥 5. Upda...

A Complete Tutorial: Using RabbitMQ + Celery with Multiple Django Projects

In this post, we’ll walk through how to set up RabbitMQ on one server and run Celery across multiple Django projects, with clean project isolation, scalable architecture, and best practices. ✅ Step 1: Install RabbitMQ (Server A) ➡️ On Ubuntu (Server A): sudo apt update sudo apt install rabbitmq-server -y sudo systemctl enable rabbitmq-server sudo systemctl start rabbitmq-server ➡️ Enable RabbitMQ Management UI: sudo rabbitmq-plugins enable rabbitmq_management Visit: http://server-a-ip:15672 (default guest/guest). ➡️ Create RabbitMQ User: sudo rabbitmqctl add_user admin strongpasswordhere sudo rabbitmqctl set_user_tags admin administrator sudo rabbitmqctl set_permissions -p / admin ".*" ".*" ".*" sudo rabbitmqctl delete_user guest # For security ➡️ Open Ports: 5672 (for Celery workers) 15672 (for admin UI, restricted IPs recommended) ✅ Step 2: Project Structure (Multiple Django Projects Example) /var/www/ ├── project_...